Tải bản đầy đủ (.pdf) (5 trang)

Cách tạo Database bằng phpMyAdmin trên localhost- P3 potx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (423.47 KB, 5 trang )



Sử dụng bảng gợi ý FORCESEEK
Bảng gợi ý FORCESEEK khá hữu dụng trong trường
hợp Query Plan (các bước được sử dụng để truy cập
hay hiệu chỉnh thông tin trong hệ thống quản lý cơ sở
dữ liệu liên quan tới SQL) sử dụng một bảng hay
toán tử Index Scan (quét chỉ mục) trên một bảng hay
view, tuy nhiên toán tử (Index Seek) tìm kiếm chỉ
mục có thể hiệu quả hơn (ví dụ như trong trường hợp
có quá nhiều sự lựa chọn). Gợi ý bảng FORCESEEK
buộc Query Optimizer (trình tối ưu truy vấn) chỉ sử
dụng các thao tác Index Seek như đường dẫn truy cập
vào dữ liệu trong bảng hay view được tham chiếu
trong truy vấn. Chúng ta có thể sử dụng bảng gợi ý
này để ghi đè lên Query Plan mặc định được Query
Optimizer lựa chọn để tránh các vấn đề thực thi gây
ra do Query Plan không hiệu quả. Ví dụ, nếu một
Plan chứa bảng hay các toán tử Index Scan, và những
bảng tương ứng liên tục được truy cập trong khi thực
thi truy vấn thì việc áp dụng một thao tác Index Seek
có thể sẽ hiệu quả hơn sử dụng truy vấn. Khả năng
này sẽ xảy ra trong trường hợp các thành phần trong
tập hợp không chính xác hay tính đến lượng thời gian
cần sử dụng để viết một Query Plan mà Query
Optimizer sử dụng để thực hiện tìm kiếm.



Một trong những tình huống mà bảng gợi ý này trở
nên hữu dụng đó là khả năng làm việc với Parameter


Sniffing (một công cụ mà trình tối ưu truy vần của
SQL Server sử dụng để tìm kiếm giá trị biến từ truy
vấn trong khi thực hiện lệnh lần đầu tiên và tạo một
Plan thực thi tối ưu dựa trên giá trị đó). Chúng ta hãy
kiểm chứng điều này bằng cách chạy những truy vấn
dưới đây trong cơ sở dữ liệu AdventureWorks và
phân tích những điểm khác biệt.
Trường hợp 1: Truy vấn đầu tiên trả về 450 hàng và
có ít khả năng chọn lọc hơn so với truy vấn thứ hai
chỉ trả về 16 bản ghi. Do đó cần sử dụng Index Scan
cho truy vấn đầu tiên hơn là sử dụng Index Seek và
Lookup (tra cứu) của truy vấn thứ hai.



Trường hợp 2: Chúng ta sẽ chạy lại các truy vần ở
trên, nhưng trong trường hợp này chúng ta sẽ sử dụng
các biến để gán các giá trị cho truy vấn thay vì nhập
trực tiếp các giá trị. Nếu kiểm tra các Plan thực thi
được tạo chúng ta sẽ thấy cả hai truy vấn đang sử
dụng cùng Index Scan mặc dù các giá trị của tham số
hoàn toàn khác nhau. Theo trường hợp 1 thì truy vấn
thứ hai có khả năng chọn lọc cao hơn và cần sử dụng
Index Seek và Lookup. Đó là do trong khi khi truy

×