Tôi có một bảng lưu trữ ghi chú
create tblNote(
Id int identity(1,1),
ParentId int ,
ParentType varchar(32),
NoteType varchar(32),
Note varchar(max),
CreatedBy varchar(25),
CreatedDate datetime,
.
.
.
<other metadata about the note>
)
Gần đây tôi đã đọc rất nhiều về cách MSSS xử lý các chỉ mục (2005 và chuyển tiếp).
Tôi có một chỉ mục nhóm trên ID
[Tôi đã cân nhắc việc thay đổi chỉ mục được nhóm thành ParentId, ParentType vì điều đó khá hẹp và nó là tĩnh. ]
Tỷ lệ truy vấn áp đảo đối với bảng này sẽ nằm dọc theo dòng
select NOTE, createdDate, createdBy
from tblNote
where parentId = 12 and parentType = 'RFQ'
Câu hỏi tôi muốn hỏi hôm nay (mặc dù mọi phản hồi đều được chào đón) là đây:
Chỉ số NC tôi có thể thêm là:
create index idx_nc_note_parent(
parentId ,
parenttype
)
include (createdby, createdDate)
Điều này sẽ hữu ích trong việc tạo danh sách nhỏ các ghi chú nơi chúng tôi có thể bao gồm ai và khi nhập thông tin.
Tôi do dự bao gồm một varchar(max)lĩnh vực. Có vẻ như nó thực sự sẽ làm tổn thương số lượng chỉ mục sẽ được lưu trữ (Điều này hợp lý hay không hợp lý)
Giả sử tôi không bao gồm NOTEtrường, Tra cứu RID sẽ cần thiết để thực sự tìm nạp nội dung ghi chú nếu được yêu cầu.
Mặc dù tôi đã đọc khá nhiều về việc tra cứu RID đắt tiền như thế nào, nhưng vẫn phải tốt hơn để có chỉ số này chứ không phải là quét bảng, ĐÚNG?
[xin lỗi về khối mã, tôi đã thêm 4 khoảng trắng, nhưng có lẽ tôi đã làm sai? ]
(parentId, parentType)kết hợp trung bình ?