Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 非常大的表索引_Sql_Sql Server_Query Tuning - Fatal编程技术网

Sql 非常大的表索引

Sql 非常大的表索引,sql,sql-server,query-tuning,Sql,Sql Server,Query Tuning,我有两个大型表(数百万行),它们有相似的列(一个staging,一个master),查询所有列 所有列都是VARCHAR(200) 正确的索引策略是什么。 覆盖索引不起作用,因为它们主要用于谓词,而不是Select。 聚集索引可以是完全不使用的标识。那么具有4列的非聚集索引将太大。。800字节。我建议您创建一个计算列,该列是列值的散列,然后将其用于索引。最常见的情况是,索引将用于插入和更新。在某些散列上使用计算索引将使。您已指定不能对比较所需的所有列创建索引。因此,在散列值上建立索引比根本没有索

我有两个大型表(数百万行),它们有相似的列(一个staging,一个master),查询所有列

所有列都是VARCHAR(200)

正确的索引策略是什么。 覆盖索引不起作用,因为它们主要用于谓词,而不是Select。
聚集索引可以是完全不使用的标识。那么具有4列的非聚集索引将太大。。800字节。

我建议您创建一个计算列,该列是列值的散列,然后将其用于索引。最常见的情况是,索引将用于插入和更新。在某些散列上使用计算索引将使。您已指定不能对比较所需的所有列创建索引。因此,在散列值上建立索引比根本没有索引要好。
MERGE
INTO    [dbo].[TABLE1] [t1]
USING   [dbo].[TABLE2] [t2]
ON      [t1].[COL1] = [t2].[COL1]
        AND [t1].[COL2] = [t2].[COL2]
        AND [t1].[COL3] = [t2].[COL3]
        AND [t1].[COL4] = [t2].[COL4]