indexing - SQL Server 2012 Avoiding Index Scan for Aggregate? -


i have large select statement, index scan taking 83% of time, , takes many seconds return when there 700k rows. made subset of here:

set nocount on create table #scanme ( lookid int identity primary key , stateid tinyint ) create nonclustered index scanstateid on #scanme (stateid) stateid in ( 0 ) go insert #scanme values ( 0 ) ; insert #scanme values ( 1 ) ; insert #scanme values ( 1 ) ; insert #scanme values ( 1 ) ; insert #scanme values ( 2 ) ; insert #scanme values ( 2 ) ; insert #scanme values ( 2 ) ; insert #scanme values ( 2 ) ; insert #scanme values ( 2 ) ; insert #scanme values ( 2 ) ; insert #scanme values ( 1 ) ; insert #scanme values ( 1 ) ; insert #scanme values ( 1 ) ; insert #scanme values ( 1 ) ; insert #scanme values ( 0 ) ; insert #scanme values ( 1 ) ; insert #scanme values ( 2 ) ; insert #scanme values ( 0 ) go insert #scanme values ( 0 ) ; insert #scanme values ( 1 ) ; insert #scanme values ( 1 ) ; insert #scanme values ( 1 ) ; insert #scanme values ( 2 ) ; insert #scanme values ( 2 ) ; insert #scanme values ( 2 ) ; insert #scanme values ( 2 ) ; insert #scanme values ( 2 ) ; insert #scanme values ( 2 ) ; insert #scanme values ( 1 ) ; insert #scanme values ( 1 ) ; insert #scanme values ( 1 ) ; insert #scanme values ( 1 ) ; insert #scanme values ( 0 ) ; insert #scanme values ( 1 ) ; insert #scanme values ( 2 ) ; insert #scanme values ( 0 ) go insert #scanme values ( 0 ) ; insert #scanme values ( 1 ) ; insert #scanme values ( 1 ) ; insert #scanme values ( 1 ) ; insert #scanme values ( 2 ) ; insert #scanme values ( 2 ) ; insert #scanme values ( 2 ) ; insert #scanme values ( 2 ) ; insert #scanme values ( 2 ) ; insert #scanme values ( 2 ) ; insert #scanme values ( 1 ) ; insert #scanme values ( 1 ) ; insert #scanme values ( 1 ) ; insert #scanme values ( 1 ) ; insert #scanme values ( 0 ) ; insert #scanme values ( 1 ) ; insert #scanme values ( 2 ) ; insert #scanme values ( 0 ) go insert #scanme values ( 0 ) ; insert #scanme values ( 1 ) ; insert #scanme values ( 1 ) ; insert #scanme values ( 1 ) ; insert #scanme values ( 2 ) ; insert #scanme values ( 2 ) ; insert #scanme values ( 2 ) ; insert #scanme values ( 2 ) ; insert #scanme values ( 2 ) ; insert #scanme values ( 2 ) ; insert #scanme values ( 1 ) ; insert #scanme values ( 1 ) ; insert #scanme values ( 1 ) ; insert #scanme values ( 1 ) ; insert #scanme values ( 0 ) ; insert #scanme values ( 1 ) ; insert #scanme values ( 2 ) ; insert #scanme values ( 0 ) go select      sum( case when stateid=0 1 else 0 end ) notdone   , sum( case when stateid=1 1 else 0 end ) doneok   , sum( case when stateid=2 1 else 0 end ) doneerrors   #scanme 

if run in ssms right not see same plan getting, dml above illustrate problem is. 700k rows, sum requirement apparently causing index scan mssql looks @ every stateid , adds up.

can recommend different index (or how alter select) make query return quickly?

thanks.


Comments

Popular posts from this blog

php - Calling a template part from a post -

Firefox SVG shape not printing when it has stroke -

How to mention the localhost in android -