Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.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_Indexing_Ssis - Fatal编程技术网

为什么在SQL上使用变量时,数据库引擎会避免索引?

为什么在SQL上使用变量时,数据库引擎会避免索引?,sql,indexing,ssis,Sql,Indexing,Ssis,我正在改进SSIS过程,通过“声明”传递变量,我发现: 未使用声明(执行时间:1秒) 选择* 从事实上看 其中数据\u ID>=20201001 和Data_ID=@data1 数据ID参数嗅探就是问题所在 只需在末尾使用选项(重新编译) 更多信息两台服务器上都有相同的服务器吗?两个选项集相同吗?查询计划仅显示可用内容的一部分。您可以将完整的计划粘贴到中,然后将其链接到您的问题中。两个查询都位于同一服务器上,并且具有相同的设置选项。这里有完整的两次执行,以显示在同一服务器上、同一集合选项上和

我正在改进SSIS过程,通过“声明”传递变量,我发现:

未使用声明(执行时间:1秒)

选择*
从事实上看
其中数据\u ID>=20201001
和Data_ID=@data1

数据ID参数嗅探就是问题所在

只需在末尾使用选项(重新编译)


更多信息

两台服务器上都有相同的服务器吗?两个选项集相同吗?查询计划仅显示可用内容的一部分。您可以将完整的计划粘贴到中,然后将其链接到您的问题中。两个查询都位于同一服务器上,并且具有相同的设置选项。这里有完整的两次执行,以显示在同一服务器上、同一集合选项上和同一时间执行了两次(但在brentozar web上,没有使用声明正确表示查询):这里有使用变量,这里没有变量
select *
from fact_Venta
where Data_ID >= 20201001
and Data_ID <= 20201001
declare @data1 as int = 20201001
declare @data2 as int = 20201001
select *
from fact_Venta
where Data_ID >= @data1
and Data_ID <= @data2