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

Làm cách nào để cải thiện hiệu suất cho tính năng lọc ngày giờ trong SQL Server?

Chỉ một gợi ý khi nói đến chỉ mục trên datetime trong msql là dấu chân chỉ mục tác động đến thời gian tìm kiếm (Vâng, điều này có vẻ hiển nhiên ... nhưng vui lòng đọc tiếp).

Giá trị này khi lập chỉ mục vào datetime, chẳng hạn như '2015-06-05 22:47:20.102', chỉ mục phải tính đến mọi vị trí trong datetime. Điều này trở nên rất lớn về mặt không gian và cồng kềnh. Một cách tiếp cận thành công mà tôi đã tận dụng là tạo một cột ngày giờ mới và điền dữ liệu bằng cách làm tròn thời gian thành giờ và sau đó xây dựng chỉ mục dựa trên cột mới này. Ví dụ '2015-06-05 22:47:20.102' dịch thành '2015-06-05 22:00:00.000'. Bằng cách thực hiện phương pháp này, chúng tôi để riêng dữ liệu chi tiết và có thể hiển thị hoặc sử dụng nó bằng cách tìm kiếm trên cột mới này, điều này mang lại cho chúng tôi lợi tức xấp xỉ 10 lần (tối thiểu) về tốc độ trả về kết quả. Điều này là do chỉ mục không phải tính đến các trường phút, giây và mili giây.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tránh 4 sai lầm DBA phổ biến này

  2. Perfect Storm để nâng cấp lên phiên bản SQL Server hiện đại

  3. SQL Server sp_msforeachtable sử dụng để chỉ chọn những bảng đáp ứng một số điều kiện

  4. Cách thay đổi giản đồ của một đối tượng (Bảng, Dạng xem, Thủ tục đã Lưu trữ) trong Cơ sở dữ liệu SQL Server - Hướng dẫn SQL Server / TSQL Phần 28

  5. Mệnh đề VALUES trong SQL Server