Những thói quen tốt khi viết câu lệnh T-SQL- P2
Số trang: 5
Loại file: pdf
Dung lượng: 285.38 KB
Lượt xem: 12
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Tham khảo tài liệu những thói quen tốt khi viết câu lệnh t-sql- p2, công nghệ thông tin, cơ sở dữ liệu phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả
Nội dung trích xuất từ tài liệu:
Những thói quen tốt khi viết câu lệnh T-SQL- P2tục làm việc với điều kiện cột “So4” được tạo với giátrị mặc định DEFAULT hoặc cho phép NULL.Thêm tiền tố cho wildcard để tăng tốc tìm kiếmSử dụng các ký tự thay thế (wildcard) thích hợp cóthể cải thiện hiệu suất câu truy vấn. Chẳng hạn bạnmuốn tìm kiếm trong bảngAdventureWorks.Person.Contact tất cả LastNameskết thúc bằng “sen”. Giả dụ rằng bạn đã xây dựngmột chỉ mục trên cột LastName. Nếu bạn viết câulệnh tìm kiếm như sau:SELECT Distinct LastNameFROM Person.ContactWHERE LastName LIKE %senCâu lệnh sử dụng ký tự phần trăm (%) để thay thếcho không hoặc nhiều ký tự được theo sau bởi chuỗi“sen” trong trường LastName. Điều này khiến máychủ SQL thực hiện thao tác quét chỉ mục nhằm tìmkiếm tất cả các tên kết thúc bằng “sen” để giải quyếtcâu truy vấn. Việc này rất có ý nghĩa bởi cho đến khitoàn bộ bảng được quét, máy chủ SQL không thểđảm bảo rằng đã tìm ra toàn bộ các bản ghi cóLastName kết thúc bằng “sen”.Ngoài ra, nếu bạn đang tìm kiếm các bản ghi cóLastName dài đúng sáu ký tự và kết thúc bằng “sen”,bạn có thể viết câu lệnh tìm kiếm như sau:SELECT Distinct LastNameFROM Person.ContactWHERE LastName LIKE ___sen’Ở đây, câu lệnh sử dụng ký tự gạch dưới (_) để thaythế cho một ký tự đơn. Ví dụ này tương tự với ví dụ ởphần trên và sử dụng thao tác quét chỉ mục để giảiquyết. Một lần nữa, máy chủ SQL biết rằng cần phảiquét toàn bộ chỉ mục trước khi đảm bảo đã tìm thấytất cả các tên dài sáu ký tự và kết thúc bằng “sen”trong bảng Person.Contact.Máy chủ SQL có thể trả về kết quả nhanh hơn nếu nókhông phải đọc toàn bộ chỉ mục bằng cách sử dụngcơ chế quét. Máy chủ SQL đủ thông minh để nhậnbiết khi bạn đặt thêm tiền tố trước ký tự thay thế (%,_, v.v..), nó có thể dùng một thao tác tìm kiếm chỉmục để tiến hành giải quyết tiêu chí tìm kiếm. Sauđây là một ví dụ về câu lệnh tìm kiếm yêu cầu trả vềtất cả bản ghi có LastName bắt đầu bằng ký tự “A”và kết thúc bằng “sen”:SELECT Distinct LastNameFROM Person.ContactWHERE LastName LIKE A%senBằ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, bạn đã cho máy chủSQL biết rằng nó có thể sử dụng một thao tác tìmkiếm chỉ mục để giải quyết câu truy vấn. Một khimáy chủ SQL đọc tới bản ghi cuối cùng có LastNamebắt đầu bằng ký tự “A”, nó biết rằng không còn bảnghi nào có LastName bắt đầu bằng ký tự “A” nữa vàsẽ dừng lại.Không phải tất cả ký tự thay thế đều cần thêm tiền tốđể máy chủ SQL dùng một thao tác tìm kiếm chỉ mụcnhằm giải quyết truy vấn. 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ợpký tự thay thế và vẫn cho phép máy chủ SQL giảiquyết câu truy vấn bằng cách dùng một thao tác tìmkiếm chỉ mục:SELECT Distinct LastNameFROM Person.ContactWHERE LastName LIKE [A-M]%senCâ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” và kết thúc bằng “sen”. Các cú pháp sử dụng kýtự thay thế khác trong đó chỉ rõ tập hợp các ký tựcũng có thể gọi thao tác quét chỉ mục để giải quyếttiêu chí tìm kiếm.Chỉ dùng DISTINCT khi cầnĐặt từ khóa DISTINCT trong câu lệnh SELECT sẽloại bỏ các kết quả trùng lặp trong số những kết quảtrả về của câu truy vấn. Nó khiến máy chủ SQL phảithực hiện thêm thao tác SORT để sắp xếp dữ liệunhằm nhận biết và loại bỏ các bản trùng lặp. Vì thế,nếu bạn biết trước các kết quả trả về sẽ không trùnglặp thì không nên dùng từ khóa DISTINCT trong câulệnh T-SQL. Với việc sử dụng từ khóa DISTINCTtrong câu truy vấn, bạn đã yêu cầu máy chủ SQL thựchiện thao tác sắp xếp vào loại bỏ các kết quả trùnglặp. Đây là phần công việc phụ thêm của máy chủ
Nội dung trích xuất từ tài liệu:
Những thói quen tốt khi viết câu lệnh T-SQL- P2tục làm việc với điều kiện cột “So4” được tạo với giátrị mặc định DEFAULT hoặc cho phép NULL.Thêm tiền tố cho wildcard để tăng tốc tìm kiếmSử dụng các ký tự thay thế (wildcard) thích hợp cóthể cải thiện hiệu suất câu truy vấn. Chẳng hạn bạnmuốn tìm kiếm trong bảngAdventureWorks.Person.Contact tất cả LastNameskết thúc bằng “sen”. Giả dụ rằng bạn đã xây dựngmột chỉ mục trên cột LastName. Nếu bạn viết câulệnh tìm kiếm như sau:SELECT Distinct LastNameFROM Person.ContactWHERE LastName LIKE %senCâu lệnh sử dụng ký tự phần trăm (%) để thay thếcho không hoặc nhiều ký tự được theo sau bởi chuỗi“sen” trong trường LastName. Điều này khiến máychủ SQL thực hiện thao tác quét chỉ mục nhằm tìmkiếm tất cả các tên kết thúc bằng “sen” để giải quyếtcâu truy vấn. Việc này rất có ý nghĩa bởi cho đến khitoàn bộ bảng được quét, máy chủ SQL không thểđảm bảo rằng đã tìm ra toàn bộ các bản ghi cóLastName kết thúc bằng “sen”.Ngoài ra, nếu bạn đang tìm kiếm các bản ghi cóLastName dài đúng sáu ký tự và kết thúc bằng “sen”,bạn có thể viết câu lệnh tìm kiếm như sau:SELECT Distinct LastNameFROM Person.ContactWHERE LastName LIKE ___sen’Ở đây, câu lệnh sử dụng ký tự gạch dưới (_) để thaythế cho một ký tự đơn. Ví dụ này tương tự với ví dụ ởphần trên và sử dụng thao tác quét chỉ mục để giảiquyết. Một lần nữa, máy chủ SQL biết rằng cần phảiquét toàn bộ chỉ mục trước khi đảm bảo đã tìm thấytất cả các tên dài sáu ký tự và kết thúc bằng “sen”trong bảng Person.Contact.Máy chủ SQL có thể trả về kết quả nhanh hơn nếu nókhông phải đọc toàn bộ chỉ mục bằng cách sử dụngcơ chế quét. Máy chủ SQL đủ thông minh để nhậnbiết khi bạn đặt thêm tiền tố trước ký tự thay thế (%,_, v.v..), nó có thể dùng một thao tác tìm kiếm chỉmục để tiến hành giải quyết tiêu chí tìm kiếm. Sauđây là một ví dụ về câu lệnh tìm kiếm yêu cầu trả vềtất cả bản ghi có LastName bắt đầu bằng ký tự “A”và kết thúc bằng “sen”:SELECT Distinct LastNameFROM Person.ContactWHERE LastName LIKE A%senBằ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, bạn đã cho máy chủSQL biết rằng nó có thể sử dụng một thao tác tìmkiếm chỉ mục để giải quyết câu truy vấn. Một khimáy chủ SQL đọc tới bản ghi cuối cùng có LastNamebắt đầu bằng ký tự “A”, nó biết rằng không còn bảnghi nào có LastName bắt đầu bằng ký tự “A” nữa vàsẽ dừng lại.Không phải tất cả ký tự thay thế đều cần thêm tiền tốđể máy chủ SQL dùng một thao tác tìm kiếm chỉ mụcnhằm giải quyết truy vấn. 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ợpký tự thay thế và vẫn cho phép máy chủ SQL giảiquyết câu truy vấn bằng cách dùng một thao tác tìmkiếm chỉ mục:SELECT Distinct LastNameFROM Person.ContactWHERE LastName LIKE [A-M]%senCâ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” và kết thúc bằng “sen”. Các cú pháp sử dụng kýtự thay thế khác trong đó chỉ rõ tập hợp các ký tựcũng có thể gọi thao tác quét chỉ mục để giải quyếttiêu chí tìm kiếm.Chỉ dùng DISTINCT khi cầnĐặt từ khóa DISTINCT trong câu lệnh SELECT sẽloại bỏ các kết quả trùng lặp trong số những kết quảtrả về của câu truy vấn. Nó khiến máy chủ SQL phảithực hiện thêm thao tác SORT để sắp xếp dữ liệunhằm nhận biết và loại bỏ các bản trùng lặp. Vì thế,nếu bạn biết trước các kết quả trả về sẽ không trùnglặp thì không nên dùng từ khóa DISTINCT trong câulệnh T-SQL. Với việc sử dụng từ khóa DISTINCTtrong câu truy vấn, bạn đã yêu cầu máy chủ SQL thựchiện thao tác sắp xếp vào loại bỏ các kết quả trùnglặp. Đây là phần công việc phụ thêm của máy chủ
Tìm kiếm theo từ khóa liên quan:
cơ sở dữ liệu quan hệ cơ sở dữ liệu quan hệ database relationship thiết kế cơ sở dữ liệu quan hệ phương pháp thiết kế ngôn ngữ sqlGợi ý tài liệu liên quan:
-
Giáo trình Cơ sở dữ liệu: Phần 2 - TS. Nguyễn Hoàng Sơn
158 trang 293 0 0 -
Giáo trình Lập trình quản lý với Microsoft Access 2013 toàn tập: Phần 1
195 trang 236 0 0 -
Xây dựng ontology cho hệ thống truy vấn dữ liệu tùy chọn
5 trang 143 0 0 -
Mô tả công việc Chuyên gia cố vấn UI-UX
1 trang 98 0 0 -
26 trang 72 0 0
-
54 trang 69 0 0
-
Giáo trình Nhập môn cơ sở dữ liệu: Phần 2 - Trần Thành Trai
145 trang 68 0 0 -
Giáo trình Tin học ứng dụng trong kinh doanh
170 trang 58 0 0 -
Bài giảng Cơ sở dữ liệu - Hồ Cẩm Hà
163 trang 53 0 0 -
Đề thi Thực hành Cơ sở dữ liệu - Đề số 10
1 trang 47 1 0