- [SQLSERVER] Loại bỏ Restricted User trên database MSSQL
- [C#] Hướng dẫn tạo mã QRcode Style trên winform
- [C#] Hướng dẫn sử dụng temp mail service api trên winform
- [C#] Hướng dẫn tạo mã thanh toán VietQR Pay không sử dụng API trên winform
- [C#] Hướng Dẫn Tạo Windows Service Đơn Giản Bằng Topshelf
- [C#] Chia sẻ source code đọc dữ liệu từ Google Sheet trên winform
- [C#] Chia sẻ source code tạo mã QR MOMO đa năng Winform
- [C#] Chia sẻ source code phần mềm lên lịch tự động chạy ứng dụng Scheduler Task Winform
- [Phần mềm] Tải và cài đặt phần mềm Sublime Text 4180 full version
- [C#] Hướng dẫn download file từ Minio Server Winform
- [C#] Hướng dẫn đăng nhập zalo login sử dụng API v4 trên winform
- [SOFTWARE] Phần mềm gởi tin nhắn Zalo Marketing Pro giá rẻ mềm nhất thị trường
- [C#] Việt hóa Text Button trên MessageBox Dialog Winform
- [DEVEXPRESS] Chia sẻ code các tạo report in nhiều hóa đơn trên XtraReport C#
- [POWER AUTOMATE] Hướng dẫn gởi tin nhắn zalo từ file Excel - No code
- [C#] Chia sẻ code lock và unlock user trong domain Window
- [DEVEXPRESS] Vẽ Biểu Đồ Stock Chứng Khoán - Công Cụ Thiết Yếu Cho Nhà Đầu Tư trên Winform
- [C#] Hướng dẫn bảo mật ứng dụng 2FA (Multi-factor Authentication) trên Winform
- [C#] Hướng dẫn convert HTML code sang PDF File trên NetCore 7 Winform
- [C#] Hướng dẫn viết ứng dụng chat với Gemini AI Google Winform
[DATABASE] Tổng hợp thủ thuật tăng tốc độ truy vấn trong sqlserver
Bài viết hôm nay, mình hướng dẫn các bạn 25 thủ thuật làm tăng tốc độ truy vấn trong SQL SERVER các bạn có thể tham khảo ở bên dưới:
Mỗi khách hàng hay người dùng đều muốn được trả về dữ liệu nhanh nhất do đó chúng ta cần thiết kế một cơ sở dữ liệu tốt mà tăng hiệu suất cho mỗi lẫn thao tao với dữ liệu. Không có con đường thẳng để định nghĩa hiệu suất tốt snhaats nhưng có nhiều cách để cải thiện câu lệnh sql ví dụ như tạo index , sử dụng join , viết lại subquery để chỉ dùng join, ...
Như một nhà phát triển chúng ta biết sql có thể viết trong rất nhiều cách nhưng chúng ta nên follow theo cách tốt nhất để đạt được hiệu suất tốt nhất. Dưới đây là các típ cho chúng ta:
-
Hãy dùng EXISTS thay vì IN để kiểm tra sự tồn tại của dữ liệu.
-
Tránh * trong câu lệnh SELECT. Hãy dùng tên cột thích hợp.
-
Chọn loại dữ liệu thích hợp . Ví dụ lưu chuỗi sử dụng loại varchar thay vì sử dụng loại Text. Khi muốn sử dụng loại Text, là khi bạn cần lưu dữ liệu lơn (nhiều hơn 8000 ký tự).
-
Tránh dùng nchar và nvarchar vì cả hai đều tăng bộ nhớ lên gấp đôi so với char và varchar.
-
Tránh NULL đối với những trường mà đã cố định độ dài. Trong trường hợp yêu cầu là NULL hãy sử dụng một trường loại varchar với độ dài tùy biến thì vẫn lấy space ít hơn là NULL.
-
Tránh dùng mệnh đề Having. Chỉ dùng khi muốn lọc kết quả trả về.
-
Hãy tạo ra indexs là cách tốt nhất tăng tốc . Indexs bao gồm Clustered và Non-Clustered.
-
Hãy giữ index của clustered nhỏ thôi vì trường mà dùng trong cluster index đó thì cũng được dùng trong non-clustered index.
-
Đa số cột được chọn nên đặt trong non-clustered index.
-
Những index nào không được dùng thì nên xóa đi.
-
Tốt hơn là tạo ra index trên những cột có giả trị là số thay vì là ký tự. Giá trị số sử dụng ít bộ nhớ hơn ký tự.
-
Dùng câu lệnh join thay vì dùng select trong select
-
Hãy sử dụng mệnh đề WHERE để giới hạn cỡ của bảng kết quả trả về mà được tạo ra với câu lệnh join.
-
Hãy dùng TABLOCKX trong khi chèn dữ liệu vào bảng và TABLOCK trong khi merging dữ liệu
-
Sử dụng WITH (NOLOCK) trong khi truy xuất dữ liệu từ bất kỳ một bảng nào.
-
Dùng SET NOCOUNT ON và sử dụng TRY - CATCH để tránh điều kiện deadlock.
-
Tránh dùng cursor vì nó ảnh hưởng đến hiệu suất của chương trình rất chậm.
-
Sử dụng biến TABLE thay vì dùng bảng TEMP. Dùng bảng TEMP đòi hỏi tương tác với cơ sở dữ liệu TEMPDB mà mất thời gian để thực hiện một tác vụ.
-
Sử dụng UNION ALL thay vì UNION nếu có thể.
-
Sử dụng tên Schema trước tên đối tượng SQL.
-
Sử dụng Stored Procedure cho những dữ liệu thường xuyên được sử dụng và những query hỗn hợp , hoặc những câu lệnh chứa nhiều logic phức tạp.
-
Giữ transaction nhỏ nhất có thể vì transaction khóa việc xử lý dữ liệu bảng và có thể dẫn đến kết quả bị deadlocks.
-
Tránh tiền tố “sp_” với tên store procedure người dùng tự định nghĩa bởi vì SQL server đầu tiên tìm kiếm những thủ tục người dùng định nghĩa trong cơ sở dử liệu master và sau đó mới sử dụng phiên làm việc của cơ sở dữ liệu hiện hành.
-
Tránh dùng câu query Non-correlated . Sử dụng câu query này như một câu query riêng instead thay vì là query chính và lưu output trong một biến, mà có thể tham chiếu đến câu query chính hoặc là một phần sau của batch.
-
Tránh Table Valued Functions (TVFs) với nhiều câu lệnh. Vì nó giảm hiệu suất.
HAVE FUN