SQL Server 2008:使用内部联接的查询性能

记忆

在这里,我在查询的海量数据的内部联接上遇到性能问题,如下所示:

例子:

/* Creating table */

create table xyz
(
 colp1 nvarchar(10),
 colp2 nvarchar(10),
 coldt date,
 coltm datetime,
 coldr integer
);

/* Inserting records */ 

insert into xyz values('A','B','2014-08-02','10:00:00',50);
insert into xyz values('A','C','2014-08-02','11:08:08',120);
insert into xyz values('A','B','2014-08-02','11:08:55',160);
insert into xyz values('A','D','2014-08-03','09:00:15',180);
insert into xyz values('A','E','2014-08-04','11:00:10',600);
insert into xyz values('A','F','2014-08-04','11:05:50',320);
.
.
upto 50000

/* Query */

declare @testtable table(dt date,st time,et time)

insert into @testtable select coldt,coltm,DATEADD(ss,coldr,coltm) from xyz

select distinct colp1,colp2,coldt,
            coltm from xyz as x 
            inner join  
            @testtable  as t on convert(varchar,x.coltm,108) > t.st and 
            convert(varchar,x.coltm,108)< t.et;

获得大量时间来执行上述查询以获取海量数据。

zhongxiao37

尝试将查询更改为

create TABLE #testtable (dt date,st time,et time)

insert into #testtable select coldt,coltm,DATEADD(ss,coldr,coltm) from xyz

select distinct colp1,colp2,coldt,
        coltm 
INTO #tmp2
from xyz as x 
inner join  #testtable  as t on convert(varchar,x.coltm,108) > t.st and 
        convert(varchar,x.coltm,108)< t.et;

这里的问题是使用表变量而不是临时表。这是用于比较表变量和临时表的文档

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SQL Server 2008:使用内部联接的查询性能

来自分类Dev

SQL Server 2008查询-表联接

来自分类Dev

基于查询表的SQL Server内部联接

来自分类Dev

内部联接问题要在SQL Server 2008中更新

来自分类Dev

内部联接问题要在SQL Server 2008中更新

来自分类Dev

使用WITH(NOLOCK)的SQL Server内部联接

来自分类Dev

联接查询等效于Not IN子句(SQL Server 2008)

来自分类Dev

SQL Server 2008 R2:查询性能

来自分类Dev

使用Python从SQL Server和Oracle进行内部联接查询

来自分类Dev

如何在SQL Server查询中与with和内部联接一起使用?

来自分类Dev

从SQL Server到Firebird的查询转换(使用内部联接进行更新)

来自分类Dev

如何使用内部联接查询根据 SQL Server 中的日期时间变化获取前 1 行?

来自分类Dev

使用SQL Server 2008加快查询速度

来自分类Dev

SQL Server查询优化:自我内部联接过多

来自分类Dev

如何重构在 SQL Server 内部具有联接的子查询

来自分类Dev

与SQL Server 2008 R2中的内部联接一起使用时,哪里不存在

来自分类Dev

Access / SQL Server 2008联接使用“赞”不起作用

来自分类Dev

内部加入SQL Server 2008

来自分类Dev

SQL Server查询内部表使用名称

来自分类Dev

大型查询的SQL Server性能

来自分类Dev

SQL Server嵌套查询性能

来自分类Dev

SQL Server 查询性能测试

来自分类Dev

链接和联接的SQL Server性能问题

来自分类Dev

SQL Server 2008中的循环联接

来自分类Dev

自联接SQL Server 2008中的表

来自分类Dev

SQL Server 2008联接,联合,多项选择?

来自分类Dev

通过 SQL Server 提高 SQL 查询的性能

来自分类Dev

如何在SQL Server查询中使用联接和sum()

来自分类Dev

SQL查询中不使用内部联接

Related 相关文章

热门标签

归档