我有两个数据类型如下的表
表1- [sta].[Stoerungen]
```
CREATE TABLE [sta].[Stoerungen](
[DWH_ID] [int] IDENTITY(1,1) NOT NULL,
[SPS_Bereich] nvarchar NULL,
[ID] [int] NULL,
[DateTime] [datetime] NULL,
[Classname] nvarchar NULL,
[txtName] nvarchar NULL,
[txtCame] nvarchar NULL,
[TimeDiff] [int] NULL
) ON [PRIMARY]
表2- `[dbo].[scheduled_events_ISTProduction]` ```
CREATE TABLE [dbo].[scheduled_events_ISTProduction](
[event_id] [varchar](50) NOT NULL,
[item_id] [int] NOT NULL,
[start_date] [datetime] NULL,
[end_date] [datetime] NULL,
[label] [varchar](45) NULL,
[foreground] [varchar](45) NULL,
[background] [varchar](45) NULL,
[lead_time] [int] NULL,
[lead_color] [varchar](45) NULL,
[pct_done] [int] NULL,
[createdby] [varchar](50) NULL,
[createdon] [datetime] NULL,
[typ] [int] NULL,
[timediff] [int] NULL
) ON [PRIMARY]
我使用下面的查询只是为了得到前100行,大约需要11秒。
select TOP 100 T.DWH_ID,T.date_time, T.TimeDiff, T.[End Date], T.SPS_Bereich, T.txtName from (
SELECT sto.[DWH_ID]
,sto.[SPS_Bereich]
,FORMAT(sto.[DateTime], 'dd-MM-yyyy HH:mm') as date_time
,sto.[txtName]
,sto.[TimeDiff]
, DATEADD(second,sto.[TimeDiff],FORMAT(sto.[DateTime], 'dd-MM-yyyy HH:mm'))as [End Date]
FROM [Stoerdaten].[sta].[Stoerungen] sto where sto.Classname='Alarm' and sto.TimeDiff>60 ) as T
join [IgnitionServer].[dbo].[scheduled_events_ISTProduction] cal on
((T.date_time between cal.start_date and cal.end_date) and T.[End Date] between cal.start_date and cal.end_date) where cal.typ=1 order by [DWH_ID] desc
如何优化此查询以更快地运行,以及应创建哪个索引以获得最佳性能。
当前只有一个索引 DWH_ID
作为一个 UNIQUE CLUSTERED INDEX
暂无答案!
目前还没有任何答案,快来回答吧!