Điều chỉnh hiệu suất SQL
Điều chỉnh hiệu suất SQL là một quá trình tối ưu hóa các truy vấn SQL để đảm bảo chúng thực thi nhanh nhất có thể. Có nhiều yếu tố ảnh hưởng đến hiệu suất của truy vấn SQL, chẳng hạn như số lượng bảng được truy vấn, kích thước và số lượng cột trong bảng cũng như chỉ mục trên bảng.
SQL là một thành phần quan trọng của nhiều hệ thống cơ sở dữ liệu và là ngôn ngữ nổi tiếng để truy vấn, cập nhật và quản lý dữ liệu.
Điều chỉnh hiệu suất SQL là một chủ đề quan trọng cần nắm vững vì nó có thể giúp tăng khả năng mở rộng và tốc độ truy vấn.
Trong phần này, chúng tôi sẽ đề cập đến các cách điều chỉnh SQL khác nhau.
Tất cả chúng ta luôn muốn có phản hồi nhanh trong quá trình truy xuất dữ liệu. Vì vậy, chúng ta cần thiết kế một cơ sở dữ liệu tốt cung cấp hiệu suất tốt nhất trong quá trình thao tác dữ liệu dẫn đến hiệu suất tốt nhất của ứng dụng.
Tuy nhiên, không có cách đơn giản nào để xác định hiệu suất tốt nhất nhưng chúng ta có thể chọn nhiều cách để cải thiện hiệu suất truy vấn SQL, thuộc các danh mục khác nhau như tạo Chỉ mục, sử dụng liên kết và viết lại truy vấn con để sử dụng THAM GIA, v.v.
Là nhà phát triển, chúng tôi biết bất kỳ truy vấn SQL nào cũng có thể được viết theo nhiều cách nhưng chúng tôi nên tuân theo các phương pháp/kỹ thuật tốt nhất để đạt được hiệu suất truy vấn tốt hơn. Một số trong số họ được đánh dấu dưới đây:
- Sử dụng EXISTS thay vì IN để kiểm tra sự tồn tại của dữ liệu.
2. Tránh * trong câu lệnh SELECT. Đặt tên của các cột mà bạn yêu cầu.
3. Chọn Loại dữ liệu phù hợp. Ví dụ: Để lưu trữ các chuỗi, hãy sử dụng varchar thay cho kiểu dữ liệu văn bản. Sử dụng kiểu dữ liệu văn bản, bất cứ khi nào bạn cần lưu trữ dữ liệu lớn (hơn 8000 ký tự).
4. Tránh nchar và nvarchar nếu có thể vì cả hai kiểu dữ liệu chỉ chiếm gấp đôi bộ nhớ là char và varchar.
5. Tránh NULL trong trường độ dài cố định. Trong trường hợp yêu cầu NULL, hãy sử dụng trường có độ dài thay đổi (varchar) chiếm ít không gian hơn cho NULL.
6. Tránh Có Mệnh đề. Mệnh đề có là bắt buộc nếu bạn muốn lọc thêm kết quả của một tập hợp.
7. Tạo các chỉ mục được nhóm và không được nhóm.
8. Giữ cho chỉ mục được nhóm nhỏ vì các trường được sử dụng trong chỉ mục được nhóm cũng có thể được sử dụng trong chỉ mục không được nhóm.
9. Hầu hết các cột chọn lọc nên được đặt ngoài cùng bên trái trong khóa của chỉ mục không phân cụm.
10. Bỏ các chỉ mục không sử dụng.
11. Tốt hơn là tạo chỉ mục trên các cột có giá trị số nguyên thay vì ký tự. Giá trị số nguyên sử dụng ít chi phí hơn giá trị ký tự.
12. Sử dụng phép nối thay vì truy vấn phụ.
13. Sử dụng các biểu thức WHERE để giới hạn kích thước của các bảng kết quả được tạo bằng các phép nối.
14. Sử dụng TABLOCKX khi chèn vào bảng và TABLOCK khi hợp nhất.
15. Sử dụng VỚI (NOLOCK) trong khi truy vấn dữ liệu từ bất kỳ bảng nào.
16. Sử dụng SET NOCOUNT ON và sử dụng TRY- CATCH để tránh tình trạng bế tắc.
17. Tránh Con trỏ vì con trỏ hoạt động rất chậm.
18. Sử dụng biến Table thay cho bảng Temp. Việc sử dụng các bảng Temp yêu cầu tương tác với cơ sở dữ liệu TempDb, đây là một nhiệm vụ tốn nhiều thời gian.
19. Sử dụng UNION ALL thay cho UNION nếu có thể.
20. Sử dụng tên lược đồ trước tên đối tượng SQL.
21. Sử dụng Thủ tục lưu trữ cho dữ liệu được sử dụng thường xuyên và các truy vấn phức tạp hơn.
22. Giữ giao dịch càng nhỏ càng tốt vì giao dịch khóa dữ liệu bảng xử lý và có thể dẫn đến bế tắc.
23. Tránh tiền tố “sp_” với tên thủ tục lưu trữ do người dùng xác định vì máy chủ SQL trước tiên tìm kiếm thủ tục do người dùng xác định trong cơ sở dữ liệu chủ và sau đó trong cơ sở dữ liệu phiên hiện tại.
24. Tránh sử dụng Truy vấn con vô hướng không tương quan. Sử dụng truy vấn này dưới dạng truy vấn riêng biệt thay vì một phần của truy vấn chính và lưu trữ đầu ra trong một biến, biến này có thể được tham chiếu trong truy vấn chính hoặc phần sau của lô.
25. Tránh các hàm có giá trị trong bảng nhiều câu lệnh (TVF). TVF đa câu lệnh đắt hơn TVF nội tuyến.
Như chúng ta đã thấy ở trên, Trong SQL Server, có một số bước bạn có thể thực hiện để cải thiện hiệu suất của toàn bộ truy vấn và cơ sở dữ liệu của mình. Có nhiều bước sẽ được áp dụng cho các RDBMS khác cũng như ORACLE.
- Sử dụng KẾ HOẠCH GIẢI THÍCH hoặc AUTOTRACE để phân tích kế hoạch thực hiện các truy vấn của bạn và xác định bất kỳ vấn đề nào với cách chúng đang được thực thi.
- Sử dụng gợi ý INDEX để chỉ định chỉ mục nào sẽ được trình tối ưu hóa sử dụng cho một truy vấn cụ thể.
- Cân nhắc sử dụng các gợi ý như FULL hoặc INDEX_FFS để buộc trình tối ưu hóa sử dụng quét toàn bộ bảng hoặc quét toàn bộ chỉ mục nhanh tương ứng.
- Sử dụng gợi ý OPTIMIZER_MODE để chỉ định chế độ tối ưu hóa cụ thể cho truy vấn.
- Cân nhắc sử dụng các dạng xem cụ thể hóa để tính toán trước và lưu trữ dữ liệu thường xuyên truy cập, điều này có thể cải thiện hiệu suất của các truy vấn truy cập dữ liệu đó.
- Sử dụng gói DBMS_STATS để phân tích và thu thập số liệu thống kê về cơ sở dữ liệu của bạn và các đối tượng của nó, điều này có thể giúp trình tối ưu hóa đưa ra quyết định sáng suốt hơn khi tạo kế hoạch thực hiện.
- Cân nhắc sử dụng phân vùng để chia các bảng lớn thành các phần nhỏ hơn, dễ quản lý hơn, điều này có thể cải thiện hiệu suất của các truy vấn truy cập các bảng đó.
- Sử dụng Trình cố vấn điều chỉnh SQL để xác định và khắc phục mọi sự cố hiệu suất tiềm ẩn với các câu lệnh SQL của bạn.
- Đây chỉ là một vài trong số nhiều kỹ thuật bạn có thể sử dụng để cải thiện hiệu suất của các truy vấn và cơ sở dữ liệu Oracle SQL của mình. Điều quan trọng cần lưu ý là các bước cụ thể bạn cần thực hiện sẽ phụ thuộc vào cơ sở dữ liệu và khối lượng công việc cụ thể của bạn.
- Bạn luôn nên tham khảo ý kiến của quản trị viên cơ sở dữ liệu hoặc các chuyên gia khác nếu bạn đang gặp sự cố về hiệu suất.
Nhiều cách để tìm hiểu GCP miễn phí với Google Cloud trong dịp lễ
Thấu hiểu --
Các lệnh Linux để học trên đám mây
Chúc bạn đọc vui vẻ…..Học tập vui vẻ!

![Dù sao thì một danh sách được liên kết là gì? [Phần 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































