簡體   English   中英

Bigint 與 nvarchar 非聚集索引:SQL Server 2008

[英]Bigint vs nvarchar non-clustered index: SQL Server 2008

我有一個非常大的表,大多數查詢使用 WHERE 子句來過濾包含 ID 號的列。 不幸的是,此 ID 號存儲為 nvarchar(255)。 重新轉換為 bigint(它不適合 int)是否有助於查詢性能?

注意 - 此 ID 值不是唯一的,因此無法分配主鍵。 這是否意味着我不能在這里使用聚集索引? 該表當前包含 0 個聚集索引。

當然,占用 8 個字節的bigint將比您的nvarchar(255)快得多,如果您使用所有 255 個字符,它可能最多占用 512 個字節。 根據 Martin 的評論,如果這個 ID 現在適合bigint ,這意味着它不超過 19 位(我猜你沒有負 ID),所以它實際上可能最多占用 40 個字節(2 + 2 * 19 )。 更多關於這里

您可以在不唯一的字段上創建索引,即使是聚集的字段。 關於這一點,您可能會發現這個問題很有用: 聚集索引必須是唯一的嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM