我有一系列的我用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