Chúng tôi đang gặp phải một số vấn đề về khóa bảng nặng trong quá trình sản xuất. Tôi đã nhận thấy rằng tôi đã tạo ra một thủ tục được lưu trữ mà nhận được một danh sách các đơn đặt hàng theo số thứ tự. Số thứ tự là VARCHAR (150). Không có chỉ số của bất kỳ loại nào trên cột này.Chỉ mục trên Varchar?
Hiện tại, có rất nhiều giá trị NULL trong cột này. Tuy nhiên, theo thời gian (Bảng này đã được phát hành gần đây), bảng sẽ tăng trưởng đáng kể. Không còn giá trị NULL nào được thêm vào trong thời gian này.
Câu hỏi của tôi là hai lần. Thứ nhất, một chỉ mục sẽ có lợi ở đây. Proc được sử dụng nhiều. Và nếu vậy, nó có nên được nhóm lại hay không? Dữ liệu là những thứ như CP123456, DR126512.
Câu hỏi thứ hai, có thể ảnh hưởng đến câu hỏi đầu tiên - sẽ có ích khi thay đổi cột thành CHAR (10), vì có vẻ 'số thứ tự luôn có cùng kích thước. Có bất kỳ lợi ích tốc độ nào trong việc đặt chỉ mục trên một độ dài cố định CHAR, trái với một VARCHAR (150) không?
(Kích thước khác nhau là do các yêu cầu không xác định khi cột được tạo).
SQL Server 2008.
Bạn chắc chắn có thể có các khóa chính không được nhóm trong máy chủ sql ms. – MatBailie