[Database-Oracle] Đối với cơ sở dữ liệu cực lớn thì dùng gì để truy xuất dữ liệu nhanh nhất? - Page 4 - vozForums
vozForums

Go Back   vozForums > Máy tính để bàn > Phần mềm > Phát triển Phần mềm


Reply
 
Thread Tools
  #31  
Old 12-01-2017, 19:07
thieugiatri4492 thieugiatri4492 is offline
Senior Member
 
Join Date: 08-2012
Posts: 428
Re: [Database-Oracle] Đối với cơ sở dữ liệu cực lớn thì dùng gì để truy xuất dữ liệu nhanh nhất?

Quote:
Originally Posted by BanhXe0_ View Post
Theo như mô ta thì SP chỉ tốn 5p, trong khi từ DataAdapter ném ra view thì chậm đúng ko bác
Chính xác hơn là lúc cái DataAdapter thực hiện lấy dữ liệu từ stored, nó chạy cực lâu, 2-3 tiếng, rất là khủng khiếp nhiều khi tưởng là chạy vô hạn luôn. Chứ cái lúc Fill vào Dataset thì lẹ rồi
Reply With Quote
  #32  
Old 12-01-2017, 19:10
thieugiatri4492 thieugiatri4492 is offline
Senior Member
 
Join Date: 08-2012
Posts: 428
Re: [Database-Oracle] Đối với cơ sở dữ liệu cực lớn thì dùng gì để truy xuất dữ liệu nhanh nhất?

Quote:
Originally Posted by cashino05 View Post
Bạn đừng quan tâm chuẩn hay ko chuẩn gì cả. Hãy nghĩ tới tính ổn định và tốc độ làm tiêu chí. Mình dek biết Adapter hay cái lồng gì đó ở Oracle nhưng mình biết có 2 dạng đọc dữ liệu từ phía MSSQL DB server:
- DataAdapter: Đọc 1 cục load hết kq vào cái memory của cái máy hiện tại ( tức là cái Web server đang chạy cái code). Load xong tự close connection.
- Datareader: Đọc 1 miếng chủ yếu để mồi connection, từ đó bòn rút từng cái data row sau mỗi lần call có chủ đích (tức là thích đọc nhiêu thì đọc, quit lúc nào cũng dc nhưng phải close connection trườc quit).
Nếu bạn có nhu cầu giữ data trên memory nhiều thì nên dùng cách 1.
Tại cái code của mình nó xài mấy cái dataset rồi chuyển về datatable, sau đó chỉnh sửa thêm trường vào datatable nữa rồi xuất ra web. Nói chung là cái code thấy rất cứng, sửa chỗ này là phải lôi toàn bộ chỗ khác ra sửa
Reply With Quote
  #33  
Old 13-01-2017, 08:45
thieugiatri4492 thieugiatri4492 is offline
Senior Member
 
Join Date: 08-2012
Posts: 428
Re: [Database-Oracle] Đối với cơ sở dữ liệu cực lớn thì dùng gì để truy xuất dữ liệu nhanh nhất?

Quote:
Originally Posted by 09 16 View Post
đọc tới đây là chán chả muốn nói tiếp nữa rồi, nhưng thôi ráng giúp vậy.

1. ông select ra 100 ngàn dòng để hiển thị làm cái gì? Ai rảnh mà đọc hết 100 ngàn rows? Làm báo cáo thì tính sum, average, min, max... các kiểu rồi report ra chưa đến vài giây.

2. Không rành oracle lắm nhưng chắc sẽ có chức năng select từ 1 store procedure. Ông tạo thêm 1 cái procedure mới để phân trang từ cái procedure cũ:

select top 200 * from stored_procedure_cũ() skip 5000; -- lấy ra từ rows 5000 đến 5200

trên UI thì chỉ nên hiển thị 100 - 200 rows thôi, nhiều hơn thì cái UI đó không khả thi, nên tìm hiểu làm UI khác hiệu quả hơn.


3. query trên console mất 5 phút là quá lâu, nên tối ưu mỗi procedure chỉ mất khoảng 30s - 1 phút mà thôi.

4. Load lên code không được chắc do code lởm
À mà mình quên mất, phân trang lúc lấy lên cũng không được nữa, tại vì về nghiệp vụ yêu cầu lấy hết cả trăm ngàn dòng đó rồi xuất ra toàn bộ trong file excel hoặc word báo cáo luôn. Nếu phân trang lấy lên vậy thì làm sao xuất hết cùng 1 lúc được? Tại yêu cầu của khách hàng là xuất ra 1 lần để coi hết toàn bộ các dòng đó luôn
Reply With Quote
  #34  
Old 14-01-2017, 00:36
volcanoltd's Avatar
volcanoltd volcanoltd is offline
Senior Member
 
Join Date: 05-2010
Location: where ?
Posts: 1,631
Re: [Database-Oracle] Đối với cơ sở dữ liệu cực lớn thì dùng gì để truy xuất dữ liệu nhanh nhất?

Mình làm trong mảng ngân hàng như dự là làm Web API Backend trên nền ASP.Net Core, cũng sử dụng Oracle để store data. Không biết các bác có cao kiến gì ko ? Vì hầu như muốn get dữ liệu về đều phải qua Store Proc cả, có lần mình thấy ông kia call proc mà gần 1 phút mới xong vì cả trăm triệu records mà lại sử dụng tới mấy bảng @@
Reply With Quote
  #35  
Old 14-01-2017, 10:04
thieugiatri4492 thieugiatri4492 is offline
Senior Member
 
Join Date: 08-2012
Posts: 428
Re: [Database-Oracle] Đối với cơ sở dữ liệu cực lớn thì dùng gì để truy xuất dữ liệu nhanh nhất?

Quote:
Originally Posted by volcanoltd View Post
Mình làm trong mảng ngân hàng như dự là làm Web API Backend trên nền ASP.Net Core, cũng sử dụng Oracle để store data. Không biết các bác có cao kiến gì ko ? Vì hầu như muốn get dữ liệu về đều phải qua Store Proc cả, có lần mình thấy ông kia call proc mà gần 1 phút mới xong vì cả trăm triệu records mà lại sử dụng tới mấy bảng @@
Bạn có gặp tình trạng mấy cái procedure nó thực thi rồi bị treo session không?
Reply With Quote
  #36  
Old 15-01-2017, 00:05
volcanoltd's Avatar
volcanoltd volcanoltd is offline
Senior Member
 
Join Date: 05-2010
Location: where ?
Posts: 1,631
Re: [Database-Oracle] Đối với cơ sở dữ liệu cực lớn thì dùng gì để truy xuất dữ liệu nhanh nhất?

Quote:
Originally Posted by thieugiatri4492 View Post
Bạn có gặp tình trạng mấy cái procedure nó thực thi rồi bị treo session không?
Có bác, treo xong đơ app luôn.
Reply With Quote
  #37  
Old 15-01-2017, 00:15
thieugiatri4492 thieugiatri4492 is offline
Senior Member
 
Join Date: 08-2012
Posts: 428
Re: [Database-Oracle] Đối với cơ sở dữ liệu cực lớn thì dùng gì để truy xuất dữ liệu nhanh nhất?

Quote:
Originally Posted by volcanoltd View Post
Có bác, treo xong đơ app luôn.
Mấy cái dữ liệu lớn là chuyên gia bị, trường hợp của mình là do trong cái server có cả trăm transaction chạy cùng 1 lúc hết cả tablespace, phải nhờ tay quản trị kill session
Reply With Quote
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump





All times are GMT +7. The time now is 21:10.


Steam Powered by vBulletin® 0.1 pre-alpha
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.