Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

SQL Server 2005 đã lưu vào bộ nhớ cache một kế hoạch thực thi không bao giờ có thể hoạt động

Bạn có thể quan tâm đến Quy tắc lập trình đầu tiên .

Chỉ mục được phân nhóm luôn bao gồm tất cả các hàng. Nó có thể được đặt hàng theo z , nhưng nó sẽ vẫn chứa tất cả các cột khác ở cấp độ lá.

Lý do SQL Server đôi khi thích quét theo cụm hơn là tìm kiếm chỉ mục là vì điều này. Khi bạn thực hiện tìm kiếm chỉ mục, bạn phải theo dõi nó bằng cách tra cứu dấu trang đến chỉ mục được phân nhóm để truy xuất các cột không có trong chỉ mục.

Khi bạn thực hiện quét chỉ mục theo nhóm, theo định nghĩa, bạn sẽ tìm thấy tất cả các cột. Điều đó có nghĩa là không cần tra cứu dấu trang.

Khi SQL Server mong đợi nhiều hàng, nó sẽ cố gắng tránh tra cứu dấu trang. Đây là một sự lựa chọn đã được thử nghiệm thời gian. Các tìm kiếm chỉ mục không phân tán thường bị đánh bại bằng cách quét chỉ mục theo nhóm.

Bạn có thể kiểm tra điều này cho trường hợp của mình bằng cách ép buộc với with (index(IX_YourIndex)) gợi ý truy vấn .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Khôi phục cơ sở dữ liệu từ các tệp .mdf và .ldf của SQL Server 2008

  2. Tại sao SQL Server 2008 Management Studio Intellisense không hoạt động?

  3. Làm cách nào để di chuyển một bảng vào một lược đồ trong T-SQL

  4. SSIS 2008 - Lấy ngày hiện tại trong các biến

  5. OPENXML với xmlns:dt