当前位置: 代码迷 >> Sql Server >> 优化查询语句解决方案
  详细解决方案

优化查询语句解决方案

热度:25   发布时间:2016-04-24 09:07:49.0
优化查询语句
已知:

CREATE TABLE [dbo].[LogTab](
[ID] [int] IDENTITY(1,1) NOT NULL,
[Name] [varchar](50) NOT NULL,
[Stime] [varchar](19) NOT NULL,
[Etime] [varchar](19) NOT NULL,
[Guid] [varchar](32) NOT NULL,
 CONSTRAINT [PK_LogTab] PRIMARY KEY CLUSTERED 
(
[ID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

GO

表数据
INSERT INTO [dbo].[LogTab]([Name],[Stime],[Etime],[Guid])
VALUES('Blog','2015-05-07 14:10:27','','bbc019d458a24f089e537ddca9deb34b')
INSERT INTO [dbo].[LogTab]([Name],[Stime],[Etime],[Guid])
VALUES('Blog','','2015-05-07 14:10:28','bbc019d458a24f089e537ddca9deb34b')
INSERT INTO [dbo].[LogTab]([Name],[Stime],[Etime],[Guid])
VALUES('Blog','2015-05-07 14:10:30','','e2c4386bc52448c1b3ff9f780ac1afe8')
INSERT INTO [dbo].[LogTab]([Name],[Stime],[Etime],[Guid])
VALUES('Blog','','2015-05-07 14:10:31','e2c4386bc52448c1b3ff9f780ac1afe8')


问:
根据guid相等,合并一条数据,里面包含名称,开始时间和结束时间

答:
SELECT a.[Name],a.[Stime],b.[Etime]
FROM dbo.LogTab as a,dbo.LogTab as b
WHERE a.Guid=b.Guid and a.Stime <> '' and b.Etime <>''

求:查询语句优化

------解决思路----------------------
create index x1 on LogTab(Guid,Stime);
create index x2 on LogTab(Guid,Etime);
------解决思路----------------------
where条件里的字段尽量建成索引。
  相关解决方案