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

Quản lý chỉ mục của SQL Server bằng Trình quản lý chỉ mục dành cho SQL Server

Tổng quan về Chỉ mục Máy chủ SQL

Khi nói về điều chỉnh hiệu suất SQL Server và tăng cường truy vấn, điều đầu tiên cần xem xét là Chỉ mục SQL Server. Nó phục vụ để tăng tốc độ đọc dữ liệu từ các bảng bên dưới bằng cách cung cấp quyền truy cập nhanh vào các hàng được yêu cầu. Do đó, nó sẽ không cần phải quét tất cả các bản ghi của bảng.

Chỉ mục SQL Server cung cấp các khả năng tìm kiếm nhanh do cấu trúc B-Tree của chỉ mục. Cấu trúc này giúp bạn có thể di chuyển qua các hàng trong bảng dựa trên khóa chỉ mục một cách nhanh chóng và truy xuất các bản ghi được yêu cầu cùng một lúc. Nó sẽ không cần phải đọc toàn bộ bảng.

Các loại chỉ mục của SQL Server

Trong số các loại chính, chúng tôi chú ý đến các chỉ mục được phân nhóm và không phân nhóm.

Chỉ mục được nhóm sắp xếp dữ liệu thực tế trong các trang dữ liệu theo các giá trị khóa của chỉ mục được nhóm lại. Nó lưu trữ dữ liệu ở cấp độ ‘lá’ của chỉ mục, đảm bảo khả năng chỉ tạo một chỉ mục nhóm trên mỗi bảng. Chỉ mục nhóm được tạo tự động khi ràng buộc Khóa chính xuất hiện trên bảng heap.

Chỉ mục không theo nhóm chứa giá trị khóa chỉ mục và một con trỏ đến phần còn lại của các cột hàng trong bảng chính. Đây là cấp độ "lá" của chỉ mục, với khả năng tạo tối đa 999 chỉ mục không phân cụm trên mỗi bảng.

Nếu bảng của bạn không có chỉ mục nhóm được tạo trên đó, bảng được gọi là 'Bảng đống'. Bảng như vậy không có tiêu chí để chỉ định thứ tự dữ liệu bên trong các trang cũng như việc sắp xếp và liên kết các trang với nhau.

Khi một chỉ mục nhóm được tạo trên bảng đó, chúng tôi gọi bảng đã sắp xếp là bảng nhóm.

Cũng có các loại chỉ mục khác được cung cấp bởi SQL Server:

  • Chỉ mục Unique thực thi tính duy nhất của các giá trị cột;
  • Chỉ mục bao gồm tất cả các cột mà truy vấn yêu cầu;
  • Chỉ mục tổng hợp chứa nhiều cột trong khóa chỉ mục;
  • Các loại chỉ mục cụ thể khác là chỉ mục XML, Spatial và Columnstore.

Ưu điểm của chỉ mục SQL Server là nó nâng cao hiệu suất của các truy vấn. Tuy nhiên, nó hoạt động nếu chỉ có chỉ số chính xác. Nếu bạn thiết kế sai, nó sẽ ảnh hưởng tiêu cực đến hiệu suất của các truy vấn và tiêu tốn tài nguyên của Máy chủ SQL để lưu trữ và duy trì các chỉ mục vô ích.

Lựa chọn chỉ mục tốt nhất để khắc phục mọi vấn đề không phải là một nhiệm vụ dễ dàng. Thêm chỉ mục mới có thể tăng tốc quá trình truy xuất dữ liệu, nhưng nó làm chậm quá trình sửa đổi dữ liệu. Bất kỳ thay đổi nào được thực hiện đối với bảng bên dưới sẽ được phản ánh trực tiếp tới tất cả các chỉ mục liên quan để giữ cho dữ liệu nhất quán.

Đây là lý do tại sao bạn nên nghiên cứu và kiểm tra tác động của chỉ số mới trước khi tạo chỉ số đó trong môi trường sản xuất. Cũng cần theo dõi tác động và cách sử dụng của nó sau khi triển khai nó vào môi trường sản xuất.

Các yếu tố cần xem xét khi thiết kế chỉ mục SQL Server mới

Yếu tố đầu tiên là loại khối lượng công việc cơ sở dữ liệu . Giả sử chúng ta xử lý một khối lượng công việc OLTP với một số lượng lớn các hoạt động ghi. Nó yêu cầu số lượng chỉ mục ít nhất có thể. Một trường hợp khác là khối lượng công việc OLAP có nhiều thao tác đọc - nó sẽ yêu cầu càng nhiều chỉ mục càng tốt để tăng tốc độ truy xuất dữ liệu.

Ngoài ra, bạn cần nhìn vào kích thước bảng . SQL Server Engine thích quét trực tiếp bảng bên dưới, thay vì lãng phí thời gian và tài nguyên vào việc chọn chỉ mục tốt nhất cho việc truy xuất dữ liệu từ bảng nhỏ đó.

Khi bạn đã quyết định tạo chỉ mục trên bảng đó, bạn cần xác định loại chỉ mục để phục vụ truy vấn của mình . Ở đó, bạn chỉ định các cột được thêm vào khóa chỉ mục. Các cơ sở là kiểu dữ liệu cột và vị trí trong các vị từ truy vấn và điều kiện kết hợp.

Các yếu tố này sẽ đảm bảo hiệu suất truy xuất dữ liệu tốt nhất, theo đúng thứ tự và giữ cho chỉ mục càng ngắn gọn và đơn giản càng tốt.

Một yếu tố khác cần xem xét khi thiết kế chỉ mục mới là lưu trữ chỉ mục . Bạn nên tạo các chỉ mục không phân cụm trên một nhóm tệp và ổ đĩa riêng biệt. Bằng cách này, bạn tách biệt các hoạt động I / O được thực hiện trong các trang dữ liệu chỉ mục khỏi các tệp dữ liệu cơ sở dữ liệu.

Xem xét thiết lập chỉ mục NGƯỜI LẬP TỨC , xác định phần trăm không gian trên mỗi trang cấp độ lá chứa đầy dữ liệu (giá trị khác với 0 hoặc 100 phần trăm mặc định). Mục đích là để lại khoảng trống trong mỗi trang dữ liệu chỉ mục cho các bản ghi mới được chèn hoặc cập nhật. Nó cũng giảm thiểu sự cố tách trang có thể dẫn đến sự cố phân mảnh chỉ mục.

Quản lý chỉ mục

Vai trò của quản trị viên cơ sở dữ liệu trong việc nâng cao hiệu suất của các truy vấn với chỉ mục SQL Server không chỉ giới hạn trong việc tạo chỉ mục. Bạn nên chủ động theo dõi việc sử dụng chỉ mục để xác định chất lượng của nó. Bên cạnh đó, chúng ta cần duy trì chỉ mục thường xuyên để khắc phục sự cố phân mảnh.

SQL Server Management Studio, với chức năng báo cáo mạnh mẽ, cung cấp dữ liệu thống kê hữu ích nhất cho quản trị viên cơ sở dữ liệu. Một trong những báo cáo tích hợp này là Thống kê sử dụng chỉ mục :

Báo cáo Thống kê Sử dụng Chỉ mục mô tả cách các chỉ mục cơ sở dữ liệu được sử dụng dưới dạng:

  • Tìm kiếm :số lần chỉ mục được SQL Engine sử dụng để tìm một hàng cụ thể.
  • Quét :số lần các trang lá chỉ mục được SQL Engine quét.
  • Tra cứu :số lần chỉ mục Không phân cụm được sử dụng làm chỉ mục Phân nhóm để truy xuất phần còn lại của các cột không được liệt kê trong chỉ mục không phân nhóm.
  • Cập nhật :số lần dữ liệu chỉ mục được sửa đổi.

Lưu ý rằng mục đích chính của việc tạo chỉ mục là thực hiện thao tác tìm kiếm chỉ mục, như được hiển thị bên dưới:

Báo cáo trước đó giúp ích đáng kể trong việc xác định xem Máy chủ SQL có tận dụng các chỉ mục này để đẩy nhanh quá trình truy xuất dữ liệu hay không. Nếu hóa ra bất kỳ chỉ mục cụ thể nào không hoạt động như bình thường, hãy loại bỏ và thay thế bằng chỉ mục tốt hơn.

Báo cáo thứ hai do SSMS cung cấp là Thống kê vật lý chỉ mục . Nó trả về thông tin thống kê về phần trăm phân mảnh chỉ mục trên mỗi phân vùng chỉ mục, với số trang trên mỗi phân vùng chỉ mục.

Nó cũng đề xuất cách khắc phục các vấn đề phân mảnh chỉ mục bằng cách xây dựng lại hoặc tổ chức lại chỉ mục đó, theo tỷ lệ phân mảnh, như được hiển thị bên dưới:

Để áp dụng các đề xuất do báo cáo cung cấp, bạn có thể chạy lệnh chống phân mảnh chỉ mục cho từng chỉ mục. Hoặc, bạn có thể tạo một kế hoạch bảo trì bằng SSMS để duy trì chỉ mục theo cách tốt nhất.

dbForge Index Manager

dbForge Index Manager là một bổ trợ SSMS, phục vụ để phát hiện và khắc phục sự cố phân mảnh chỉ mục của SQL Server.

Nó cũng là một công cụ tập trung, cung cấp khả năng phát hiện tỷ lệ phân mảnh chỉ mục trên cơ sở dữ liệu. Bạn có thể khắc phục những vấn đề này bằng cách thực hiện xây dựng lại chỉ mục. Một cách khác là tổ chức lại các hoạt động, dựa trên mức độ phân mảnh nghiêm trọng của chỉ mục đó. Trong số các tùy chọn khác, có tạo tập lệnh T-SQL để thực thi các lệnh liên quan đến chỉ mục, xuất kết quả phân tích chỉ mục để tham khảo sau này và sử dụng giao diện dòng lệnh để tự động hóa các tác vụ duy trì chỉ mục.

dbForge Index Manager có sẵn trên trang tải xuống Devart. Bạn có thể cài đặt nó vào máy của mình bằng trình hướng dẫn cài đặt thẳng. Sau khi cài đặt thành công, phần bổ trợ này đã sẵn sàng để sử dụng.

Để sử dụng nó trong SSMS, hãy nhấp chuột phải vào cơ sở dữ liệu và chọn Quản lý phân mảnh chỉ mục từ danh sách Trình quản lý chỉ mục:

Từ cửa sổ Trình quản lý chỉ mục, bạn có thể lọc tên cơ sở dữ liệu mà bạn quan tâm.

Nhấp vào Phân tích lại để thực hiện kiểm tra phân mảnh chỉ mục cho cơ sở dữ liệu đã chọn. Nó tự động hiển thị thống kê phân mảnh chỉ mục cho tất cả các chỉ mục được tạo trong cơ sở dữ liệu đã chọn trong quá trình này.

Công cụ Trình quản lý chỉ mục cũng đề xuất các hành động để khắc phục sự cố phân mảnh chỉ mục, dựa trên phần trăm phân mảnh:

Kiểm tra các chỉ mục trong phần Hành động Bắt buộc trong cửa sổ trước đó giúp bạn có thể xuất danh sách hành động dưới dạng báo cáo CSV. Nó cho phép bạn thực hiện sửa chữa được đề xuất bằng cách tổ chức lại hoặc xây dựng lại các chỉ mục có vấn đề trực tiếp từ trang đó hoặc tạo tập lệnh để thực hiện việc đó sau:

Bản sửa lỗi phân mảnh chỉ mục trong kịch bản của chúng tôi sẽ như sau:

Nếu bạn chạy tập lệnh trước đó hoặc nhấp vào nút Khắc phục rồi đến Phân tích lại kết quả là bạn thấy rằng vấn đề phân mảnh đã được khắc phục trực tiếp:

Bằng cách này, chúng tôi tận dụng Trình quản lý chỉ mục dbForge để phân tích và xác định các vấn đề phân mảnh chỉ mục, sau đó báo cáo hoặc khắc phục chúng trực tiếp từ cùng một nơi.

Công cụ hữu ích

dbForge Index Manager mang tính năng sửa chỉ mục thông minh và phân mảnh chỉ mục vào ngay SSMS. Công cụ cho phép bạn nhanh chóng thu thập số liệu thống kê phân mảnh chỉ mục và phát hiện cơ sở dữ liệu yêu cầu bảo trì. Bạn có thể ngay lập tức xây dựng lại và tổ chức lại các chỉ mục SQL Server ở chế độ trực quan hoặc tạo các tập lệnh SQL để sử dụng trong tương lai. dbForge Index Manager cho SQL Server sẽ tăng đáng kể hiệu suất của bạn mà không cần nỗ lực nhiều.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Thiết lập và cấu hình SQL Server Replication

  2. Cách giải quyết không thể chuyển đổi lỗi mã hóa khi chèn XML vào SQL Server

  3. Tính toán giá trị bằng cách sử dụng giá trị trước đó của một hàng trong T-SQL

  4. Làm thế nào để ngăn chặn SQL Server LocalDB tự động tắt?

  5. Cách định dạng ngày và giờ trong SQL Server