Những thói quen tốt khi viết câu lệnh T-SQL (Phần 1)

Hiệu năng ứng dụng phụ thuộc vào rất nhiều yếu tố, trong đó có một yếu tố rất quan trọng đó là thời gian để máy chủ SQL xử lý câu lệnh T-SQL. Đôi khi thiết kế cơ sở dữ liệu và các yêu cầu truy vấn phức tạp làm cản trở t

Hiệu năng ứng dụng phụ thuộc vào công cụ rất nhiều yếu tố ở đâu tốt , trong đó có một yếu tố qua mạng rất quan trọng đó là thời gian ở đâu uy tín để máy chủ SQL xử lý câu lệnh T-SQL ở đâu nhanh . Đôi khi thiết kế cơ sở dữ liệu xóa tài khoản qua web các yêu cầu truy vấn phức tạp làm cản trở tốc độ thực thi mới nhất của nơi nào các câu lệnh T-SQL cài đặt . Cách viết code từng câu lệnh T-SQL an toàn cũng chia sẻ có thể khiến máy chủ SQL phải làm việc nhiều hơn hỗ trợ để xử lý truy vấn kỹ thuật . Bài viết cập nhật sau đây nạp tiền sẽ giới thiệu cho bạn danh sách những thói quen tốt nên tập luyện khi viết code T-SQL cập nhật . Qua đó bạn tối ưu có thể hiểu làm thế nào mật khẩu để viết ở đâu nhanh các câu truy vấn tối ưu tài khoản , tận dụng tốt tài nguyên máy chủ SQL lấy liền và cải thiện hiệu suất.

Ghi rõ tên cột trong câu lệnh SELECT

SELECT * FROM MyTable;

Bạn hướng dẫn đã từng viết câu lệnh như trên bao nhiêu lần?

Việc sử dụng dấu sao (*) cho cơ sở dữ liệu biết rằng bạn muốn trả về quản lý tất cả tính năng các cột từ bảng ( lừa đảo hoặc tính năng các bảng) kinh nghiệm được khai báo trong mệnh đề FROM tải về . Đây không phải là một thói quen tốt ngay cả khi bạn muốn hướng dẫn tất cả cài đặt các cột tải về được trả về ứng dụng mới nhất . Tốt hơn bạn nên ghi rõ tên từng cột trong bảng sử dụng như sau:

SELECT ID miễn phí , Description sửa lỗi , DateModified FROM MyTable;

Việc khai báo rõ ràng tên tốc độ các cột trong câu lệnh SELECT mang lại lấy liền rất nhiều lợi ích công cụ . Thứ nhất giảm giá , máy chủ SQL cài đặt sẽ chỉ trả về dữ liệu cần thiết cho ứng dụng chứ không phải là một đống dữ liệu tổng hợp mà trong đó có nhiều thứ ứng dụng nguyên nhân của bạn không hề cần đến địa chỉ . Bằng cách chỉ yêu cầu trả về an toàn những dữ liệu cần thiết link down , bạn sử dụng đã góp phần tối ưu hóa khối lượng công việc máy chủ SQL cần thực hiện hay nhất để thu thập kích hoạt tất cả tổng hợp các cột xóa tài khoản của thông tin bạn yêu cầu cài đặt . Ngoài ra kinh nghiệm , nhờ không sử dụng dấu sao (*) nên bạn thanh toán đã giảm thiểu lưu lượng truyền tải qua mạng (số byte) cần thiết tự động để gửi tất toán các dữ liệu liên quan đến câu lệnh SELECT tới ứng dụng.

Trong trường hợp bạn dùng dấu sao (*) cài đặt và có một ai đó thêm cột mới vào bảng chi tiết , ứng dụng như thế nào của bạn giả mạo sẽ bắt đầu tiếp nhận dữ liệu cho cột này giả mạo mà không thay đổi mã nguồn ứng dụng mật khẩu . hỗ trợ Nếu ứng dụng chi tiết của bạn chờ đợi số lượng cột nhất định cài đặt được trả về tính năng , nó lừa đảo sẽ bị lỗi ngay khi có người bổ sung cột mới vào một trong giảm giá các bảng tham chiếu giảm giá . Bằng việc khai báo rõ ràng tên từng cột trong câu lệnh SELECT vô hiệu hóa , ứng dụng quản lý sẽ luôn nhận hỗ trợ được số lượng cố định danh sách các cột trả về trực tuyến , ngay cả khi có người thêm cột mới vào đăng ký vay các bảng tham chiếu trong câu lệnh SELECT link down . Nhờ vậy tự động , bạn chi tiết đã giúp ứng dụng tránh khỏi lấy liền những nguy cơ tiềm tàng liên quan đến giảm giá các thay đổi cơ sở dữ liệu giá rẻ có thể xảy đến dịch vụ với bất kỳ bảng nào bạn tham chiếu tới trong câu lệnh SELECT.

Ghi rõ tên cột trong câu lệnh INSERT

Cũng giống như trên hỗ trợ , bạn nên chỉ rõ tên từng cột bạn muốn chèn dữ liệu vào trong câu lệnh INSERT link down . Đừng viết câu lệnh INSERT lấy liền như sau:

INSERT INTO MyTable VALUES ("A","B","C");

an toàn Khi bạn viết kiểu này tăng tốc , máy chủ SQL đòi hỏi chỉ đúng ba cột tính năng được định nghĩa trong bảng MyTable qua mạng , qua app và giá trị “A” danh sách sẽ sử dụng được chèn vào cột đầu tiên hỗ trợ , “B” vào cột thứ hai nạp tiền , “C” vào cột cuối kích hoạt . miễn phí Nếu ai đó thêm mới một cột vào bảng MyTable vô hiệu hóa , ứng dụng nơi nào của bạn nhanh nhất sẽ bị lỗi:

Msg 213 mới nhất , Level 16 địa chỉ , State 1 kiểm tra , Line 1 
Column name or number of supplied values does not match table definition.

(Tên cột nguyên nhân hoặc số lượng giá trị không khớp bản quyền với bảng)

Vì thế tăng tốc , thay vì viết câu lệnh INSERT như trên hỗ trợ , bạn nên viết giả mạo như sau:

INSERT INTO MyTable(So1 tài khoản , So2 quản lý , So3) VALUES ("A","B","C");

Bằng cách viết trên tự động , khi ai đó thêm mới một cột tên là “So4” vào bảng MyTable nhanh nhất , câu lệnh INSERT tối ưu vẫn tiếp tục làm việc thanh toán với điều kiện cột “So4” download được tạo kích hoạt với giá trị mặc định DEFAULT bản quyền hoặc cho phép NULL.

tối ưu Thêm tiền tố cho wildcard bản quyền để tăng tốc tìm kiếm

Sử dụng kiểm tra các ký tự thay thế (wildcard) thích hợp nơi nào có thể cải thiện hiệu suất câu truy vấn tốc độ . Chẳng hạn bạn muốn tìm kiếm trong bảng AdventureWorks.Person.Contact đăng ký vay tất cả LastNames kết thúc bằng “sen” download . Giả dụ rằng bạn trên điện thoại đã xây dựng một chỉ mục trên cột LastName khóa chặn . tốt nhất Nếu bạn viết câu lệnh tìm kiếm an toàn như sau:

SELECT Distinct LastName 
FROM Person.Contact
WHERE LastName LIKE "%sen"

Câu lệnh sử dụng ký tự phần trăm (%) khóa chặn để thay thế cho không cài đặt hoặc nhiều ký tự bản quyền được theo sau tải về bởi chuỗi “sen” trong trường LastName link down . Điều này khiến máy chủ SQL thực hiện thao tác quét chỉ mục tốt nhất nhằm tìm kiếm bản quyền tất cả giả mạo các tên kết thúc bằng “sen” kỹ thuật để giải quyết câu truy vấn tối ưu . Việc này miễn phí rất có ý nghĩa đăng ký vay bởi cho đến khi toàn bộ bảng hỗ trợ được quét download , máy chủ SQL không thể đảm bảo rằng tài khoản đã tìm ra toàn bộ qua mạng các bản ghi có LastName kết thúc bằng “sen”.

Ngoài ra tốc độ , kích hoạt nếu bạn đang tìm kiếm tài khoản các bản ghi có LastName dài đúng sáu ký tự kích hoạt và kết thúc bằng “sen” cài đặt , bạn mới nhất có thể viết câu lệnh tìm kiếm dữ liệu như sau:

SELECT Distinct LastName 
FROM Person.Contact
WHERE LastName LIKE "___sen’

Ở đây download , câu lệnh sử dụng ký tự gạch dưới (_) tổng hợp để thay thế cho một ký tự đơn nguyên nhân . Ví dụ này tương tự cập nhật với ví dụ ở phần trên quảng cáo và sử dụng thao tác quét chỉ mục tính năng để giải quyết ở đâu nhanh . Một lần nữa ở đâu tốt , máy chủ SQL biết rằng cần phải quét toàn bộ chỉ mục trước khi đảm bảo qua web đã tìm thấy full crack tất cả bản quyền các tên dài sáu ký tự trực tuyến và kết thúc bằng “sen” trong bảng Person.Contact.

Máy chủ SQL kỹ thuật có thể trả về kết quả nhanh hơn qua mạng nếu nó không phải đọc toàn bộ chỉ mục bằng cách sử dụng cơ chế quét nguyên nhân . Máy chủ SQL đủ thông minh tài khoản để nhận biết khi bạn đặt thêm tiền tố trước ký tự thay thế (% bản quyền , _ tải về , v.v..) xóa tài khoản , nó chia sẻ có thể dùng một thao tác tìm kiếm chỉ mục chia sẻ để tiến hành giải quyết tiêu chí tìm kiếm danh sách . ở đâu tốt Sau đây là một ví dụ về câu lệnh tìm kiếm yêu cầu trả về dịch vụ tất cả bản ghi có LastName bắt đầu bằng ký tự “A” cập nhật và kết thúc bằng “sen”:

SELECT Distinct LastName 
FROM Person.Contact
WHERE LastName LIKE "A%sen"

Bằng cách đặt ký tự “A” phía trước dấu phần trăm (%) trong câu lệnh tìm kiếm kích hoạt , bạn qua mạng đã cho máy chủ SQL biết rằng nó trên điện thoại có thể sử dụng một thao tác tìm kiếm chỉ mục qua web để giải quyết câu truy vấn download . Một khi máy chủ SQL đọc tới bản ghi cuối cùng có LastName bắt đầu bằng ký tự “A” link down , nó biết rằng không còn bản ghi nào có LastName bắt đầu bằng ký tự “A” nữa tính năng sửa lỗi sẽ dừng lại.

Không phải sử dụng tất cả ký tự thay thế đều cần thêm tiền tố bản quyền để máy chủ SQL dùng một thao tác tìm kiếm chỉ mục khóa chặn nhằm giải quyết truy vấn xóa tài khoản . download Sau đây là một ví dụ trong đó câu lệnh sử dụng biểu thức thể hiện một tập hợp ký tự thay thế trên điện thoại nơi nào vẫn cho phép máy chủ SQL giải quyết câu truy vấn bằng cách dùng một thao tác tìm kiếm chỉ mục:

SELECT Distinct LastName 
FROM Person.Contact
WHERE LastName LIKE "[A-M]%sen"

Câu lệnh T-SQL trên tìm kiếm toàn bộ LastName bắt đầu bằng một ký tự bất kỳ trong khoảng từ “A” đến “M” dữ liệu và kết thúc bằng “sen” mật khẩu . Các cú pháp sử dụng ký tự thay thế khác trong đó chỉ rõ tập hợp quản lý các ký tự tăng tốc cũng trực tuyến có thể gọi thao tác quét chỉ mục trực tuyến để giải quyết tiêu chí tìm kiếm.

Chỉ dùng DISTINCT khi cần

Đặt từ khóa DISTINCT trong câu lệnh SELECT nguyên nhân sẽ loại bỏ quảng cáo các kết quả trùng lặp trong số ở đâu tốt những kết quả trả về giá rẻ của câu truy vấn tài khoản . Nó khiến máy chủ SQL phải thực hiện thêm thao tác SORT chia sẻ để sắp xếp dữ liệu tất toán nhằm nhận biết tài khoản và loại bỏ phải làm sao các bản trùng lặp kiểm tra . Vì thế cài đặt , nhanh nhất nếu bạn biết trước chia sẻ các kết quả trả về tăng tốc sẽ không trùng lặp như thế nào thì không nên dùng từ khóa DISTINCT trong câu lệnh T-SQL quảng cáo . Với việc sử dụng từ khóa DISTINCT trong câu truy vấn địa chỉ , bạn bản quyền đã yêu cầu máy chủ SQL thực hiện thao tác sắp xếp vào loại bỏ tốt nhất các kết quả trùng lặp download . Đây là phần công việc phụ thêm mật khẩu của máy chủ SQL dịch vụ và không có ý nghĩa gì cập nhật nếu tập hợp kết quả qua mạng của bạn chỉ hướng dẫn bao gồm chia sẻ những bản ghi độc nhất.

Chỉ dùng UNION khi cần

Cũng giống như trường hợp từ khóa DISTINCT tính năng , toán tử UNION đòi hỏi thêm thao tác SORT kích hoạt để máy chủ SQL ở đâu uy tín có thể loại bỏ dịch vụ những kết quả trùng lặp miễn phí . tự động Nếu bạn biết trước danh sách kết quả trả về không có kết quả nào giống nhau nơi nào thì thao tác sắp xếp miễn phí mà máy chủ SQL phải thực hiện trở nên không cần thiết cập nhật . Bởi vậy khi bạn cần dùng toán tử UNION chia sẻ để nối hai tập hợp bản ghi mật khẩu với nhau kiểm tra , trong đó vô hiệu hóa các bản ghi là độc nhất không trùng lặp như thế nào , tốt hơn bạn nên dùng toán tử UNION ALL giảm giá . Toán tử UNION ALL không loại bỏ tổng hợp các bản ghi trùng lặp quảng cáo bởi vậy bản quyền sẽ giảm nhẹ phần công việc cho máy chủ SQL trong cập nhật quá trình xử lý do không phải thực hiện thao tác sắp xếp qua mạng . Giảm bớt công việc cho máy chủ SQL đồng nghĩa nhanh nhất với việc thao tác xử lý giá rẻ sẽ nguyên nhân được thực hiện nhanh hơn.

Áp dụng chi tiết các thói quen tốt lấy liền để code nhanh hơn

kiểm tra rất nhiều lý do như thế nào để tập luyện cho mình quen ở đâu uy tín với lối viết code tối ưu tốc độ . hay nhất Khi bạn áp dụng thành thạo tính năng những thủ thuật nhỏ nêu trên an toàn và biến nó thành thói quen mỗi khi viết câu lệnh T-SQL giả mạo , bạn trực tuyến sẽ tránh lừa đảo được rủi ro qua app có thể xảy ra khi cơ sở dữ liệu thay đổi kinh nghiệm , đồng thời cải thiện hiệu suất làm việc tổng hợp của máy chủ nhờ giảm thiểu lưu lượng truyền tải qua mạng qua mạng . sử dụng Những thủ thuật giá rẻ rất đơn giản này còn giúp bạn tận dụng tốt hơn tài nguyên máy chủ trong tính năng quá trình xử lý câu lệnh.

4.8/5 (28 votes)

Ý kiến khách hàngPreNext