Sql server 复杂查询的sql性能

Sql server 复杂查询的sql性能,sql-server,Sql Server,我有一张如下表: CREATE TABLE MetalTemprature( idMetalTemprature int rawTime bigint NOT NULL, metal nchar(7) NOT NULL, color nchar(5) NOT NULL, Temp float NOT NULL) 和打击指数: PRIMARY KEY CLUSTERED ( idMetalTemprature ASC )WITH (PAD_IND

我有一张如下表:

CREATE TABLE MetalTemprature(
    idMetalTemprature int
    rawTime bigint NOT NULL,
    metal nchar(7) NOT NULL,
    color nchar(5) NOT NULL,
    Temp float NOT NULL)
和打击指数:

PRIMARY KEY CLUSTERED 
(
    idMetalTemprature ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY
) ON PRIMARY

CREATE NONCLUSTERED INDEX NonClusteredIndex1112 ON MetalTemprature
(
    rawTime DESC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY
当我运行此查询时,执行此操作需要0秒:

SELECT  count(*)
  FROM MetalTemprature
  where rawTime < 4449449575 and  rawTime > (4449449575 -10000000) and  metal = 'iron';
但是当我把这个查询放在下面的其他选择下时

SELECT 
    SELECT  count(*)
          FROM MetalTemprature
          where rawTime < other.rawTime and  rawTime > (other.rawTime -10000000) and  metal = 'iron';
from other_table_only_one_row as other;
当另一个.rawTime仅为4449449575并且两个查询的结果相同时,这需要大约60秒。为什么

SELECT *
from other_table_only_one_row as other, (SELECT  count(*)
          FROM MetalTemprature
          where rawTime < other.rawTime and  rawTime > (other.rawTime -10000000) and  metal = 'iron') as cnt

将其放入FROM节以仅执行一次

Thnaks,但当我尝试它时,得到错误消息4104,级别16,状态1,第10行,多部分标识符other.rawTime无法绑定。