Thuật ngữ "sargable" được giới thiệu lần đầu tiên bởi P. Griffiths Selinger et al. trong bài viết năm 1979 của họ "Lựa chọn đường dẫn truy cập trong hệ thống quản lý cơ sở dữ liệu quan hệ", được xuất bản bởi ACM . Đối với các thành viên không phải là ACM, có một bản sao của bài báo đó tại http://cs.stanford.edu/people/chrismre/cs345/rl/selinger.pdf
Thuật ngữ được định nghĩa trong đoạn này:
Cả hai lần quét chỉ mục và phân đoạn 1 đều có thể tùy ý lấy một tập các biến vị ngữ, được gọi là đối số tìm kiếm (hoặc SARGS), được áp dụng cho một tuple trước khi nó được trả về cho người gọi RSI 2 . Nếu tuple thỏa mãn các vị từ, nó được trả về; mặt khác, quá trình quét tiếp tục cho đến khi nó tìm thấy một bộ dữ liệu thỏa mãn SARGS hoặc làm cạn kiệt phân đoạn hoặc phạm vi giá trị chỉ số được chỉ định. Điều này giúp giảm chi phí bằng cách loại bỏ chi phí thực hiện các cuộc gọi RSI cho các bộ dữ liệu có thể bị từ chối một cách hiệu quả trong RSS. Không phải tất cả các vị từ đều ở dạng có thể trở thành SARGS. Một vị từ có thể mở rộng là một dạng (hoặc có thể được đặt vào biểu mẫu) "giá trị toán tử so sánh cột". SARGS được biểu thị dưới dạng biểu thức boolean của các vị từ như vậy ở dạng bình thường rời rạc.
Nói cách khác, một biến vị ngữ có thể giải quyết được có thể được giải quyết bằng công cụ lưu trữ (phương thức truy cập) bằng cách quan sát trực tiếp bảng hoặc bản ghi chỉ mục. Ngược lại, một vị từ không thể nói được, đòi hỏi mức độ cao hơn của DBMS để thực hiện hành động. Ví dụ, kết quả của WHERE lastname = 'Doe'
có thể được quyết định bởi công cụ lưu trữ bằng cách chỉ cần nhìn vào nội dung của trường lastname
của mỗi bản ghi. Mặt khác, WHERE UPPER(lastname) = 'DOE'
yêu cầu thực thi chức năng bởi công cụ SQL, điều đó có nghĩa là công cụ lưu trữ sẽ phải trả lại tất cả các hàng mà nó đã đọc (miễn là chúng có thể khớp với các biến vị ngữ có thể khác) trở lại cho công cụ SQL để đánh giá, phát sinh thêm chi phí CPU .
Bạn có thể thấy từ định nghĩa ban đầu rằng các biến vị ngữ có thể áp dụng không chỉ cho quét chỉ mục, mà còn quét cả bảng (phân đoạn trong thuật ngữ hệ thống R), miễn là các điều kiện "giá trị toán tử so sánh cột" được đáp ứng và do đó chúng có thể được đánh giá bởi công cụ lưu trữ. Đây thực sự là trường hợp của Db2, hậu duệ của Hệ thống R theo nhiều cách :
Các biến vị ngữ có thể mở rộng chỉ mục không được sử dụng để đặt dấu ngoặc tìm kiếm, nhưng được đánh giá từ chỉ mục nếu được chọn, bởi vì các cột liên quan đến vị từ là một phần của khóa chỉ mục. Những vị từ này cũng được đánh giá bởi người quản lý chỉ số.
Các biến vị ngữ có thể sargable là các biến vị ngữ không thể được đánh giá bởi người quản lý chỉ mục, nhưng có thể được đánh giá bởi Dịch vụ quản lý dữ liệu (DMS). Thông thường, các vị từ này yêu cầu quyền truy cập của các hàng riêng lẻ từ một bảng cơ sở. Nếu cần, DMS sẽ truy xuất các cột cần thiết để đánh giá vị từ,
Thực tế là trong các biến vị ngữ có thể nói được của SQL Server chỉ là những biến có thể được giải quyết bằng cách tìm kiếm chỉ mục có thể được xác định bởi khả năng không thể áp dụng các biến vị ngữ đó trong quá trình quét bảng.
Các vị từ có thể mở rộng và không thể thay đổi đôi khi được mô tả lần lượt là các vị từ "giai đoạn 1" và "giai đoạn 2" (điều này cũng xuất phát từ thuật ngữ Db2 ). Các biến vị ngữ của Giai đoạn 1 có thể được đánh giá ở mức xử lý truy vấn thấp nhất, trong khi đọc các bản ghi bảng hoặc chỉ mục. Các hàng phù hợp với điều kiện của giai đoạn 1, nếu có, được gửi đến cấp độ tiếp theo, giai đoạn 2, để đánh giá.
1 - Phân đoạn trong Hệ thống R là bộ lưu trữ vật lý của các bộ dữ liệu của bảng; quét phân đoạn có phần tương đương với quét bảng trong các DBMS khác.
2 - Giao diện RSI - RSS 3 , giao diện truy vấn theo định hướng tuple. Hàm giao diện có liên quan đến cuộc thảo luận này là NEXT, trả về các vị từ truy vấn khớp hàng tiếp theo.
3 - RSS, hoặc Hệ thống lưu trữ nghiên cứu, hệ thống con lưu trữ của Hệ thống R.