我有一系列的我用T-SQL查詢正在運行速度非常慢的。我懷疑引起一些問題的一部分查詢是我必須對它們執行的一系列Cast。SQL鑄造列組高效地協同
這是問題所在。我必須將4列合併爲一個nvarchar/varchar,作爲它們的組合形成另一個表(我知道這個可怕的想法,但我堅持使用它)中的條目的(半) - 唯一鍵。
四列爲: t_orno,t_reno,t_pono,t_srnb:所有沒有索引的INT列。
我一直在這樣做的方式是像這樣:
Cast(t_orno AS nvarchar(10)) + '-' + Cast(t_reno as nvarchar(10)) +
'-' + Cast(t_pono as nvarchar(5)) + '-' + Cast(t_srnb as nvarchar(5))
不幸的是我堅持與具有這些列合併到一起。有沒有更好的方法來做到這一點?查詢需要更高效,而且必須要比單獨投射全部四種方法更好?
假設:數據庫是完全不可改變的 - 這可悲的是......(不想去那個..)
感謝您的幫助。
編輯:由於每一個請求用於在表的更多信息:
正在從查詢只含有一個指數這兩個表,並且它是在PK柱。再次請注意,這些表上沒有任何內容可以添加/更改。
表被接合包含這四個列的組合: BaanID> nvarchar的,沒有索引。
您可以在問題和查詢的表使用的是加入他們的數據結構(包括索引)? – 2012-03-16 14:25:12
@ MarkBannister嗯,我正在努力改進包含相當複雜的CTE的大約5種不同的查詢。提供它們並解釋發生的事情將非常困難 - 這就是爲什麼我只關注查詢的這一方面。我會嘗試添加更多信息。 – ImGreg 2012-03-16 14:29:18
@MarkBannister不確定要包含哪些其他相關信息。讓我知道是否還有其他感興趣的東西。 – ImGreg 2012-03-16 14:35:53