2
为什么在BIGINT col上进行此搜索具有额外的常量扫描,计算标量和嵌套循环运算符?
当我查看某些查询的实际执行计划时,我注意到WHERE子句中使用的文字常量显示为计算标量和常量扫描的嵌套链。 要重现此,我使用下表 CREATE TABLE Table1 ( [col1] [bigint] NOT NULL, [col2] [varchar](50) NULL, [col3] [char](200) NULL ) CREATE NONCLUSTERED INDEX IX_Table1 ON Table1 (col1 ASC) 其中包含一些数据: INSERT INTO Table1(col1) VALUES (1),(2),(3), (-9223372036854775808), (9223372036854775807), (2147483647),(-2147483648) 当我运行以下(废话)查询时: SELECT a.col1, a.col2 FROM Table1 a, Table1 b WHERE b.col1 > 2147483648 我看到它将在Index Seek和标量计算(根据常量)的结果中进行嵌套循环绘制。 请注意,文字大于maxint。它确实有助于写作CAST(2147483648 …