wat*_*rif 7 sql sql-server sql-server-2008
编写查询的最佳方法是什么,它会给出相同的结果:
SELECT X,Y,* FROM TABLE
WHERE (X = 1 AND Y = 2) OR (X = 2235 AND Y = 324) OR...
Run Code Online (Sandbox Code Playgroud)
表具有聚簇索引(X,Y).表是巨大的(数百万),可能有数百个OR语句.
您可以创建另一个包含 X 和 Y 列的表,并将值插入该表中,然后与原始表连接
create table XY_Values(X int, Y int)
Insert into XY_Values values
(1,2),
(2235,324),
...
Run Code Online (Sandbox Code Playgroud)
然后
SELECT X,Y,* FROM TABLE T
join XY_Values V
on T.X=V.X
and T.Y=V.Y
Run Code Online (Sandbox Code Playgroud)
您可以在 XY_Values 上的 (X,Y) 上创建索引,这将提高性能
您也可以创建 XY_Values 作为表变量。
归档时间: |
|
查看次数: |
1861 次 |
最近记录: |