我們希望提高連接查詢的性能,並且索引位於nvarchar(1000)
的列上。使用SQL Server提高連接查詢性能
正在使用另一種數據類型的索引,例如bigint
(通過添加附加列並使用原始列上的某個哈希映射函數填充它)可以提高性能?
將指數更改爲nvarchar(200)
而不是nvarchar(1000)
提高性能(假設最長的值可以是200個字符)?
我們希望提高連接查詢的性能,並且索引位於nvarchar(1000)
的列上。使用SQL Server提高連接查詢性能
正在使用另一種數據類型的索引,例如bigint
(通過添加附加列並使用原始列上的某個哈希映射函數填充它)可以提高性能?
將指數更改爲nvarchar(200)
而不是nvarchar(1000)
提高性能(假設最長的值可以是200個字符)?
索引的性能取決於索引列的數量行和大小。
是的,用hashmap添加額外的列,使用和索引,這可能會增加一些SQL查詢的性能,因爲索引會更小,sql會更快地在內存中操作。但是你必須在其他地方計算hashmaps,所以應用程序的最終性能不會更大。還有一個問題是大數據量的hashmap工作不可預測(可能有1個hashmap用於n值的navchar)。所以我最後會說,這不是個好主意。
將navchar(1000)更改爲navchar(200)聽起來好一點。指數會更小,更快,新價值的插入也會更快,而最重要的是,它將會保持穩定。但性能差異不會那麼光榮。
'nvarchar(1000)** **不能用作索引列,因爲它超過了索引條目的最大900字節。 –
還沒有被告知,他使用什麼樣的SQL服務器。那你怎麼知道? –
***所有***版本的SQL Server(最多包括2016)都對索引條目有900字節限制 –
你能爲你提供數據庫結構查詢嗎>> –
我只想得到一個主要的答案,是索引上的數字比字符上的索引好?如果值相同且不超過200個字符,那麼在navchar(1000)上的索引比在navchar(200)上的索引好? – Muky
如果數字與那個navchar相同,它將具有相同的性能。 Navchar(200)'索引將有更好的表現,然後...閱讀我的答案:) –