• [THÔNG BÁO] CẢNH BÁO LỪA ĐẢO MẠO DANH QUẢN TRỊ VIÊN
    Chào các thành viên GameVN,
    Dạo gần đây tình trạng lừa đảo scamming và phishing đang gia tăng. Ban quản trị GameVN xin lưu ý toàn bộ thành viên:
    KHÔNG/ ĐỪNG / CẤM cho bất kỳ ai tự xưng là quản trị viên của server vay tiền.
    Mọi hành vi lân la làm quen, tự tiện nhắn tin trên Discord, Facebook, Zalo hoặc các nền tảng mạng xã hội khác,
    núp bóng dưới danh nghĩa sinh hoạt của quản trị viên, đều có tỉ lệ rất, rất cao là lừa đảo.
    Nếu có tài khoản lạ add friend hoặc nhắn tin xin tiền dưới danh nghĩa admin:
    Block ngay
    Report ngay
    Không chuyển khoản, không cung cấp thông tin cá nhân


    Quản trị viên của forum và Discord server GameVN không có nhu cầu vay tiền thành viên.
    Không có lý do nào để admin chủ động kết bạn rồi xin tiền.
    Mọi thông báo chính thức chỉ được đăng trên kênh thông báo của server và topic chính thức trên forum.
    Tin nhắn riêng từ tài khoản lạ không phải thông báo của ban quản trị.
    Cảm ơn các bạn đã chú ý và cùng giữ cộng đồng an toàn.
    — Ban quản trị GameVN

    Tắt thông báo bằng nút X bên góc phải của bảng thông báo*

Help: Ưu và nhược điểm của LINQ

doquyen1989

Legend of Zelda
Lão Làng GVN
Tham gia ngày
25/3/06
Bài viết
1,163
Reaction score
37
Các bạn có ai giúp mình được không, mình đã tìm nhiều tài liệu nhưng nó vẫn không nói rõ lắm về ưu là nhược điểm của LINQ. Nếu bạn nào giúp được mình thì mình cám ơn rất nhiều.
 
search google mà không có hả bạn
 
1- Stored Procedure and compiled SQL query có tốc độ thực thi nhanh nhất vì nó gần với dữ liệu trên CSDL nhất
2- LINQ là thư viện cho phép truy vấn trên nhiều kiểu dữ liệu khác nhau: Object collections, XML, LINQ to SQL (truy vấn cơ sở dữ liệu MS-SQL), LINQ to Dataset, LINQ to Entity (ADO.net Entity Framework), LINQ to SharePoint, LINQ to XML, LINQ to nHIbernate, LINQ to XYZ, LINQ to Azure SQL Service....
Như vậy là cái 1: mục tiêu chạy thật nhanh, nhưng tính mở rộng kém, khả năng bảo trì kém.
Cái 2: một cú pháp lập trình chung--> tính mở rộng rất cao.

Khi nào dùng Stored Procedure, SQL query? Khi chúng ta viết ứng dụng Client-Server, khá thuần về công nghệ, ít có sự tương tác với nhiều nguồn dữ liệu khác nhau. Ứng dụng logic có khả năng bảo trì được trong giới hạn cho phép. Phần cứng máy chủ hạn chế, viết Stored Proc để tối ưu tốc độ.

Nên viết LINQ khi hệ thống phức tạp, việc bảo trì theo thời gian là rất lớn, Viết LINQ hợp lý sẽ chuyển nhiều logic từ server xử lý lên business layer. Giờ đây xu hướng, chúng ta không viết LINQ to SQL thuần túy nữa, mà chúng ta nên sử dụng ADO.net Entity Framework, EF4. EF4 cho phép:
1- Ánh xạ mềm dẻo cấu trúc bảng ở CSDL vào cấu trúc quan hệ, hướng đối tượng của các object entities trong .NET business layer
2- Vẫn có thể chạy, gọi các câu lệnh dynamic SQL và stored procedure để tận dụng những tính năng lập trình đặc biệt của CSDL
3- Giảm bớt số câu lệnh nặng tính thủ tục (procedural code) để Create Read Update Delete dữ liệu.
4- Thể hiện những mối quan hệ phức tạp như: thừa kế...
Hẹn bạn một buổi seminar về EF4 tại Hà nội, ở đó bạn có thể hỏi tôi thoải mái về LINQ.....

Nếu so sánh trên cùng một câu truy vấn giữa LINQ và SP hoặc ANSI SQL thì rõ ràng LINQ thua. Nhưng nếu tính trên phương diện cả bài toán thì chưa chắc. Thực tế mình đã và đang làm việc với REPORT, trong một dự án tầm cỡ quốc gia. REPORT có sử dụng cả SP và LINQ, mình thấy rằng có một số REPORT nếu sử dụng SP phải mất đơn vị hàng 1000 dòng code SQL, trong khi sử dụng LINQ chỉ mất đơn vị là 100 dòng code C#. Tương ứng với nó là performance của LINQ còn khá hơn khi dùng SP. Do đó, hầu hết mình đã dùng LINQ thay thế cho SP.

sp chạy nhanh hơn vì nó được biên dịch trước bỏi sql server con khi bạn truy xuất với linq thì linq sẽ biên dịch đoạn mã c# -> t-sql. Vậy đương nhiên là chậm hơn rồi. Tuy nhiên nếu bạn để ý, linq cung cấp các giải pháp khá linh hoạt cho việc lựa chọn sp thay cho việc dùng câu lệnh được biên dịch lúc thực thi. Và cũng hỗ trợ rất tốt việc gọi sp. Đó là chuyển các sp và user function thành 1 phương thức trong lớp data context.
 
Back
Top