SQL Server 2008: Query performance using inner join

Meem

Here I am getting a performance issue on inner join on huge data for my query as show below:

Example:

/* 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;

Getting very much time to execute above query for huge data.

zhongxiao37

Try to change your query to

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;

The problem here is using the table variables, instead of temp table. Here is the document for comparing table variable and temp table.

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

Inner join issue to update in SQL Server 2008

SQL Server 2008 Query - table join

How to Compare information schema column with Table Column in Sql Server2008 using inner Join?

INNER JOIN vs LEFT JOIN performance in SQL Server

how to use with and inner join in Sql server query?

How to use an Inner Join to get desired result in SQL Server 2008

Split and inner join return string in row SQL Server 2008

Sql query without using inner join in it

Getting error in SQL query using INNER JOIN

SQL Using inner query in left join

SQL query distict count using inner join

Dynamic SQL Query using INNER JOIN

Optimizing INNER JOIN query performance

Using INNER JOIN with multiple conditions in SQL server

How to Delete using INNER JOIN with SQL Server?

Using update with an inner join SQL SERVER 2012

SQL Query Inner Join and OR

SQL inner join - performance improvement

SQL inner join performance issues

How to take top 1 rows for based on Datetime variation in SQL Server using Inner Join query?

Inner joins in sql server 2008

How to join CTE query with another table in SQL Server 2008

Select last 5 rows in join query SQL Server 2008

INNER JOIN vs LEFT JOIN performance in SQL

Inner join query from SQL Server and Oracle with Python

Query conversion from SQL Server to firebird (UPDATE with inner join)

How to get DISTINCT row from INNER JOIN Query in SQL Server

SQL Server Query optimization : too many self inner join

Performance impact on SQL server 2008 with transactional replication using remote distributor