June 20, 2013 at 12:02 am
Hi Friends,
I have table
(Table_A (A_id int(PK),
col1 nvarchar,
col2 nvarchar,
col3 nvarchar,
col4 nvarchar,
col5 nvarcar
Col6 nvarchar))
A_id int(PK),--- already have one clusterd index on this column as this is PK
I hav only ONE non clustered index on col1, col2 and col3 and i have below query
SELECT col4, COl5, col6
FROM Table_A a INNER JOIN Some_Table_B b
ON a.a_id = b.b_some_id
WHERE a. col1 = 'Some value' AND a.col2 = 'some Value' and a.col3 = 'SOme value'
**Question 1**
do i need more NON Clustered index on this table so that, this query will perform well(as SELECT statement has more columns which dont have any indexex, ).
**Question 2**
if i put the non clusterd index on the columns which are only considerd for displaying the result set
(example, here col4, COl5, col6 with SELECT only, these columns are not utilised in WHERE or JOIN clause ) WIll this improve performance of the query
**Question 3**
Another question (as as i have mentined earlier NON clustred index is on col1, col2 and col3 )
if my WHERE clause hav only col_1 and col_2 ,
Example
SELECT col4, COl5, col6
FROM Table_A a INNER JOIN Some_Table_B
ON a.a_id = b.b_some_id
WHERE a. col1 = 'Some value' AND a.col2 = 'some Value' --- no column3 ok
will this non cluster index help or do i need to create another index only with these two columns.
Please do the needful.
**Thanks in Advance
Parixitsinh**
June 20, 2013 at 1:03 am
http://www.sqlservercentral.com/articles/Indexing/68439/
http://www.sqlservercentral.com/articles/Indexing/68636/
Gail Shaw
Microsoft Certified Master: SQL Server, MVP, M.Sc (Comp Sci)
SQL In The Wild: Discussions on DB performance with occasional diversions into recoverability
June 20, 2013 at 1:27 am
You've typed most of the code, why not run it and try it? Turn on "include actual execution plan" and create and drop indexes to test
create table Table_A (A_id int PRIMARY KEY,
col1 nvarchar,
col2 nvarchar,
col3 nvarchar,
col4 nvarchar,
col5 nvarchar,
Col6 nvarchar)
create nonclustered index IX_col1_col2_col3 ON Table_A (col1, col2, col3) INCLUDE (col4,col5,col6)
create nonclustered index IX_col4_col5_col6 ON Table_A (col4, col5, col6)
create table Some_Table_B (b_some_id int PRIMARY KEY, data INT)
SELECT col4, COl5, col6
FROM Table_A a INNER JOIN Some_Table_B b
ON a.a_id = b.b_some_id
WHERE a. col1 = 'Some value' AND a.col2 = 'some Value' --- no column3 ok
drop index IX_col1_col2_col3 ON Table_A
drop index IX_col4_col5_col6 ON Table_A
Viewing 3 posts - 1 through 2 (of 2 total)
You must be logged in to reply to this topic. Login to reply