Cấu trúc cột
Dữ liệu của cột lưu trữ được lưu trữ vật lý trong một hoặc nhiều phân đoạn (đơn vị phân bổ LOB thông thường) trên mỗi cột và cũng có thể được phân vùng theo cách thông thường. Mỗi phân đoạn chứa khoảng một triệu hàng giá trị được nén cao hoặc tham chiếu giá trị (có sẵn một số kỹ thuật nén). Một tham chiếu giá trị liên kết đến một mục trong một trong hai từ điển băm .
Từ điển được ghim trong bộ nhớ trong khi thực hiện truy vấn, với ID giá trị dữ liệu từ phân đoạn được tìm trong từ điển bất cứ khi nào thực thi yêu cầu giá trị dữ liệu thực tế (việc tra cứu này được hoãn lại càng lâu càng tốt vì lý do hiệu suất).
Các phân đoạn cũng có bản ghi tiêu đề chứa siêu dữ liệu, chẳng hạn như các giá trị tối thiểu và tối đa được lưu trữ trong phân khúc. Thông tin từ tiêu đề thường có thể được sử dụng để loại bỏ các phân vùng hoàn chỉnh khỏi quá trình xử lý tại thời điểm thực hiện. Thông tin bản ghi tiêu đề được lưu trữ trong cấu trúc gốc dữ liệu LOB thông thường, do đó loại bỏ phân đoạn có nghĩa là Công cụ lưu trữ có thể bỏ qua việc đọc các trang dữ liệu LOB khỏi bộ lưu trữ vật lý hoàn toàn. Tối đa hóa tiềm năng loại bỏ có thể yêu cầu thiết kế cẩn thận , bao gồm cả sự phụ thuộc vào thứ tự chỉ mục được nhóm vào thời điểm chỉ mục Cột được xây dựng.
Nhà điều hành kế hoạch cụ thể
SQL Server 2012 giới thiệu một chế độ thực thi mới gọi là Batch Mode. Trong chế độ này, các gói khoảng 1000 hàng được truyền giữa các toán tử, cải thiện đáng kể hiệu quả sử dụng bộ xử lý. Trong mỗi gói, dữ liệu cột được biểu diễn dưới dạng vectơ. Không phải tất cả các toán tử kế hoạch đều hỗ trợ vận hành chế độ hàng loạt, nhưng các ví dụ về các toán tử bao gồm Quét chỉ mục cột, Tham gia Hash Hash, Xây dựng bảng Batch, Bộ lọc bitmap, Tổng hợp Hash (không phải tổng hợp vô hướng ), Bộ lọc và Tính toán vô hướng (để chiếu và biểu thức đánh giá). Các kế hoạch thực hiện truy vấn đã được tăng cường để hiển thị chế độ thực hiện ước tính và thực tế.
Chống mẫu
Có một số lượng lớn các hạn chế trong bản phát hành đầu tiên, bao gồm các ràng buộc về các loại dữ liệu được phép . Hầu hết các loại phổ biến được hỗ trợ; các kiểu dữ liệu được hỗ trợ bao gồm DECIMAL
với một lớn hơn độ chính xác hơn 18 chữ số, (N)VARCHAR(MAX)
, UNIQUEIDENTIFIER
, các loại CLR, và (VAR)BINARY
.
Sử dụng các loại chuỗi , OUTER JOIN
, IN
,EXISTS
, NOT IN
, OR
, UNION ALL
có thể dẫn đến giảm đáng kể hiệu suất (Row Chế độ thực hiện), trừ khi cách giải quyết được tuyển dụng mà thường liên quan đến việc viết lại cú pháp không bình thường như thể hiện trong các bài viết liên quan trong phần này.
Thêm thông tin
Remus Rusanu đã viết một cái nhìn tổng quan tuyệt vời ở đây .