Thứ tự của các cột trong bảng sẽ có tác động rất nhỏ đến hiệu suất, so với tác động đến hiệu suất của thiết kế cơ sở dữ liệu (thực thể, thuộc tính và mối quan hệ), thiết kế giao dịch và thiết kế truy vấn của bạn.
Để biết sự khác biệt có phải là không đáng kể hay không, bạn thực sự cần thiết lập một số thử nghiệm và so sánh kết quả.
Thông thường, tôi đặt khóa chính làm cột đầu tiên, sau đó đến (các) khóa ngoại, rồi đến khóa tự nhiên và các cột được truy cập thường xuyên. Tôi thường đặt các chuỗi dài hơn về cuối hàng. Nhưng đây không nhất thiết phải là tối ưu hóa hiệu suất, vì nó là một tùy chọn kiểu dáng mà tôi sử dụng để thuận tiện.
Thứ tự của các cột có thể có tác động đến kích thước của hàng trong SQL Server, khi một số lượng lớn các cột trong một hàng là giá trị rỗng và hầu hết các cột đó đều chứa NULL. SQL Server (như Oracle) có tính năng tối ưu hóa trong đó không có khoảng trống nào được dành cho các cột chứa giá trị NULL Ở CUỐI hàng. Một số không gian được dành riêng cho mọi cột trong hàng, tối đa giá trị không phải NULL cuối cùng trong hàng.
Điều rút ra được là nếu bạn có nhiều cột có thể null, bạn muốn các cột thường xuyên không NULL TRƯỚC các cột thường xuyên NULL.
LƯU Ý:Hãy nhớ rằng SQL Server sắp xếp thứ tự các cột trong bảng trước tiên bằng cách xem cột có độ dài cố định hay độ dài thay đổi. Tất cả các cột có độ dài cố định được lưu trữ trước, sau đó là tất cả các cột có độ dài thay đổi. Trong các tập hợp cột đó (cố định và biến), các cột được lưu trữ theo thứ tự chúng được xác định.