Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 11 kết quả

Đề tài: LinQ vs Store Procedure | So sánh giữa LinQ và các SP truyền thống??

  1. #1
    Ngày gia nhập
    10 2008
    Bài viết
    14

    Mặc định LinQ vs Store Procedure | So sánh giữa LinQ và các SP truyền thống??

    Hi every body,

    Tôi có một thắc mắc từ khá lâu rồi, đó là việc so sánh giữa LinQ và các SP truyền thống được lưu trong database thì cái nào sẽ nhanh hơn ?

    Trong một project có nên dùng đồng thời cả LinQ và SP ?


    Mong nhận được sự góp ý của các bác
    Xin cám ơn nhiều !
    linhdkl
    -------------------------------------------------------------------------------------------
    linhdkl at gmail.com
    http://linhdkl.blogspot.com

  2. #2
    Ngày gia nhập
    08 2006
    Nơi ở
    Hải Phòng
    Bài viết
    78

    "Trong một project có nên dùng đồng thời cả LinQ và SP ?" dùng được chứ sao lại không, có LINQ to store procedure đó, đương nhiền dùng LINQ sẽ chậm hơn so với SP truyền thống rồi, vì tất cả đều thực hiện ở server hết, tuy nhiên dùng LINQ có một số lợi ích nhất định, hình như là nếu xử lý dữ liệu lớn thì LINQ tối ưu về tốc độ thì phải

  3. #3
    Ngày gia nhập
    09 2007
    Bài viết
    724

    Về Linq thì mình chưa hiểu nhiều nhưng theo mình biết 1 cơ chế của SP là kết quả của nó sẽ được lưu lại cache của Server nên nó rất tối ưu khi có nhiều người truy cập dữ liệu cùng lúc --> Server không phải làm lại các câu truy vấn.... nên sẽ rất tối ưu. (đối với SQL server)
    Đã được chỉnh sửa lần cuối bởi huongit1984 : 16-05-2009 lúc 11:16 AM.

  4. #4
    Ngày gia nhập
    08 2006
    Nơi ở
    Hải Phòng
    Bài viết
    78

    Trích dẫn Nguyên bản được gửi bởi zkday2686 Xem bài viết
    Về Linq thì mình chưa hiểu nhiều nhưng theo mình biết 1 cơ chế của SP là kết quả của nó sẽ được lưu lại cache của Server nên nó rất tối ưu khi có nhiều người truy cập dữ liệu cùng lúc --> Server không phải làm lại các câu truy vấn.... nên sẽ rất tối ưu. (đối với SQL server)
    chính xác, nhưng làm việc trực tiếp với server độ an toàn không cao, và ví như trong mô hình mạng 100 máy tính client kết nối đến server, mỗi client gửi đến server 1 yêu cầu server xử lý cũng hết hơi, thay vào đó ta xử lý ở client, còn yêu cầu gì kô xử lý được ở client mới đổ lên server, LINQ và typed dataset làm việc như vậy, lúc đó database sẽ có 1 cached ở client (local cached), và tất xả xử lý đều diễn ta trong bộ nhở ở client lên nhanh hơn rất nhiều.

  5. #5
    Ngày gia nhập
    10 2008
    Bài viết
    14

    Cám ơn bạn HuongIT va bạn Zkday

    Mình cũng đã nghe giang hồ đồn thổi nhiều về LinQ cũng như các mô hình Active Record khác. Chúng tỏ ra chiếm ưu thế vượt chội khi server đối mặt với database lớn và số lượng kết nối cao, hơn hẳn so với các SP truyền thống (vì chúng xử lý thông tin ở trong RAM ??? - chẳng hiểu chỗ này có đúng không)

    Rất mong các bạn đã trải nghiệm qua 2 thằng này trong hệ thống lớn chia sẻ chút kinh nghiệm.

    (@zkday: your nix .. what does it mean ?)
    linhdkl
    -------------------------------------------------------------------------------------------
    linhdkl at gmail.com
    http://linhdkl.blogspot.com

  6. #6
    Ngày gia nhập
    11 2007
    Bài viết
    294

    Mặc định LinQ vs Store Procedure | So sánh giữa LinQ và các SP truyền thống??

    Yêu cầu của bạn gần như không thể .

    Vì hệ thống lớn thì không dùng SQL Server, càng không dùng C#. Lấy đâu ra LINQ cho bạn so sánh với store.

    @zkday : cơ chế cache đó nó gọi là buffer cache. Và hầu hết các RDBMS đều có chứ không phải chỉ mỗi SQL Server .

    @huongit : với SQL Server thì Dark không rõ. Nhưng với các RDBMS khác, ví dụ Oracle chẳng hạn, việc vài trăm user kết nối đến chẳng là gì cả. Nếu dùng cả multi-tier, có thêm cả middleware(vd như Tuxedo,WS Message Queue...) thì chiện client kết nối đến server ko có gì là không an toàn cả ^^!

    Nếu như ứng dụng cần phải xử lý dữ liệu thời gian thực thì có thể cache database ở hẳn client luôn, ví dụ như cái On-Memory Database(tham khảo Oracle Timesten).
    Is the moon rising...

  7. #7
    Ngày gia nhập
    10 2008
    Bài viết
    14

    hi Darkan,

    Mình có một câu hỏi là theo bạn nghĩ hiện tại hãng Microsoft đang sử dụng hệ quản trị cơ sở dữ liệu nào? Và đối với MS thì đó có thể coi hệ thống của họ là lớn không ?

    Hiện tại mình chỉ muôn nói về SP và LinQ trong giới hạn có thể được gọi là lớn của 2 loại này vì chúng khá giống nhau chứ không phải một loại nào đó khác biệt hẳn.

    Rất mong nhận được những cao kiến của các bạn

    Thanks
    linhdkl
    -------------------------------------------------------------------------------------------
    linhdkl at gmail.com
    http://linhdkl.blogspot.com

  8. #8
    Ngày gia nhập
    11 2007
    Bài viết
    294

    @linhdeptrai(gõ cái này cứ thấy ngượng tay thế nào ấy ^^):
    Dark không "nghĩ". Những gì Dark nói đều là qua những thứ Dark đã tiếp xúc.
    Có thể bạn quá thần tượng M$ nên mới nghĩ vậy.

    M$ Windowz Server thì có cách quản lý resource không được tốt lắm. Nên các hệ thống đòi hỏi 24/7 hầu như ko có dùng bạn này. Mà đã ko dùng bạn này thì làm sao có thể dùng M$ SQL Server?

    Còn câu hỏi của bạn. Dark thực sự không có cơ hội được tiếp xúc với các cái gọi là hệ thống lớn của M$, nên cũng ko chắc là nó dùng cái gì. Nhưng Dark dám đảm bảo là chắc chắn ko phải 100% là dùng hết SQL Server, và nếu có dùng, cũng không phải là bản mà các khách hàng của M$ đang dùng.

    Dark cũng chưa có tìm hiểu kỹ về LINQ, nhưng có 1 điều Dark tin chắc là thời điểm để có thể ứng dụng LINQ cho các hệ thống "gọi là lớn của nó" chưa tới(1 sản phẩm mới cần có thời gian để khẳng định,right?). Nên nếu bạn muốn tìm hiểu thực tế ứng dụng của nó, có lẽ bạn phải chờ 1 thời gian nữa(còn nếu muốn tìm hiểu hệ thống lớn thực sự có lẽ sẽ không có).
    Is the moon rising...

  9. #9
    Ngày gia nhập
    10 2008
    Bài viết
    14

    linhdeptrai is the only nix name.
    hehehe.

    Cám ơn bạn Dark vì những điều bạn chia sẻ. Sự thật thì tôi cũng chẳng thần tượng MS lắm :P chẳng qua là đang triển khai cái project mà chỉ có một lựa chọn duy nhât đó là dùng đồ của MS. Tiện thể tìm hiểu về cái này nên mình vào đây tìm kiếm & chia sẻ ...
    linhdkl
    -------------------------------------------------------------------------------------------
    linhdkl at gmail.com
    http://linhdkl.blogspot.com

  10. #10
    Ngày gia nhập
    07 2012
    Bài viết
    1

    Mặc định SP chắc chắn nhanh hơn

    SP là của SQL server database engine do đó code dc viết trong SP được phân tích và quản lý bởi bộ optimizer, có nhiều tính năng để tăng hiệu suất, phân tích và hỗ trợ cải tiến câu lệnh,... Tất cả những cái này database engine nào cũng cần phải có, kể cả oracle. Có ý kiến cho rằng xử lý trên server sẽ khiến server quá tải, tuy nhiên ngày nay, các db engine ngày càng cải tiến, cấu hình server ngày càng mạnh nên không còn là vấn đề quá lớn.
    Xét về khả năng giữa SQL Server và Oracle thì chắc chắn Oracle good hơn trên các hệ thống lớn, nhưng với các hệ thống vừa và nhỏ thì còn phải xem xét lại bởi nếu sử dụng Oracle sẽ là sự lãng phí lớn cả về chi phí lẫn mức độ ứng dụng bởi có nhiều cái có thể chúng ta sẽ không dùng tới.

Các đề tài tương tự

  1. ADO.NET So sánh tốc độ của LINQ to store procedure và LinQ
    Gửi bởi thvnhn trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 12
    Bài viết cuối: 24-06-2013, 09:22 AM
  2. Stored procedure trong linq không cập nhật được
    Gửi bởi ndnhan trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 11
    Bài viết cuối: 11-06-2013, 02:01 PM
  3. Cách truyền tham số cho store procedure theo tên
    Gửi bởi pkthanh92 trong diễn đàn Thắc mắc lập trình Java
    Trả lời: 2
    Bài viết cuối: 17-08-2012, 02:41 PM
  4. Store Procedure & Linq
    Gửi bởi henrythong trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 1
    Bài viết cuối: 14-08-2010, 06:53 PM
  5. Nên sử dụng Linq hay Store Procedure ?
    Gửi bởi icde trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 6
    Bài viết cuối: 30-07-2010, 11:34 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn