Why won't SQL Server use an index seek when running a parameterized query?Setting up ASP.NET Membership provider for an applicationWhat can cause long query durations without high resource usage?SQL Server crashes when remote query failsSQL Server: Index utilization statistics?LEFT JOIN Server Performance optimizationSQL Server 2005 running at 97% CPU usageSQL Server won't start due to LUNs being unavailableSQL Server 2005 using 100% CPU, but drops to 70% when SQL Server Profiler is RunningWhy is Postgres sitting 95% idle, with no file I/O?Randomly slow MySQL queries

Riley's, assemble!

Why don't B747s start takeoffs with full throttle?

How can Iron Man's suit withstand this?

How were concentration and extermination camp guards recruited?

Word for a small burst of laughter that can't be held back

Is it OK to bring delicacies from hometown as tokens of gratitude for an out-of-town interview?

What does it mean by "d-ism of Leibniz" and "dotage of Newton" in simple English?

What happens to foam insulation board after you pour concrete slab?

Is it legal in the UK for politicians to lie to the public for political gain?

Convert camelCase and PascalCase to Title Case

You've spoiled/damaged the card

Building a road to escape Earth's gravity by making a pyramid on Antartica

Can you please explain this joke: "I'm going bananas is what I tell my bananas before I leave the house"?

Avoiding cliches when writing gods

Pros and cons of writing a book review?

Can a magnetic field of an object be stronger than its gravity?

Bent spoke design wheels — feasible?

How to connect an offset point symbol to its original position in QGIS?

Why is the relationship between frequency and pitch exponential?

I wrote a scene that the majority of my readers loved. How do I get back to that place while writing my new book?

How certain is a caster of when their spell will end?

The ring of global sections of a regular scheme

The term for the person/group a political party aligns themselves with to appear concerned about the general public

Shrink exponential fraction argument



Why won't SQL Server use an index seek when running a parameterized query?


Setting up ASP.NET Membership provider for an applicationWhat can cause long query durations without high resource usage?SQL Server crashes when remote query failsSQL Server: Index utilization statistics?LEFT JOIN Server Performance optimizationSQL Server 2005 running at 97% CPU usageSQL Server won't start due to LUNs being unavailableSQL Server 2005 using 100% CPU, but drops to 70% when SQL Server Profiler is RunningWhy is Postgres sitting 95% idle, with no file I/O?Randomly slow MySQL queries






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty height:90px;width:728px;box-sizing:border-box;








3















When I execute the following query in SQL Server 2005 it uses an index seek, as verified by viewing the execution plan.



SELECT *
FROM Account
WHERE Number = '123456789'


But when I run the same query, but use a parameter, it uses an index scan.



DECLARE @AccountNumber NVarChar(25)
SET @AccountNumber = '123456789'

SELECT *
FROM Account
WHERE Number = @AccountNumber


Since this table has over 10 million rows, the second query takes over 30 seconds while the first query takes only a few milliseconds. Do I really have to go and change all of my queries to not use parameters?










share|improve this question
























  • Should this belong on stackoverflow?

    – gbn
    Jul 22 '09 at 18:20

















3















When I execute the following query in SQL Server 2005 it uses an index seek, as verified by viewing the execution plan.



SELECT *
FROM Account
WHERE Number = '123456789'


But when I run the same query, but use a parameter, it uses an index scan.



DECLARE @AccountNumber NVarChar(25)
SET @AccountNumber = '123456789'

SELECT *
FROM Account
WHERE Number = @AccountNumber


Since this table has over 10 million rows, the second query takes over 30 seconds while the first query takes only a few milliseconds. Do I really have to go and change all of my queries to not use parameters?










share|improve this question
























  • Should this belong on stackoverflow?

    – gbn
    Jul 22 '09 at 18:20













3












3








3








When I execute the following query in SQL Server 2005 it uses an index seek, as verified by viewing the execution plan.



SELECT *
FROM Account
WHERE Number = '123456789'


But when I run the same query, but use a parameter, it uses an index scan.



DECLARE @AccountNumber NVarChar(25)
SET @AccountNumber = '123456789'

SELECT *
FROM Account
WHERE Number = @AccountNumber


Since this table has over 10 million rows, the second query takes over 30 seconds while the first query takes only a few milliseconds. Do I really have to go and change all of my queries to not use parameters?










share|improve this question
















When I execute the following query in SQL Server 2005 it uses an index seek, as verified by viewing the execution plan.



SELECT *
FROM Account
WHERE Number = '123456789'


But when I run the same query, but use a parameter, it uses an index scan.



DECLARE @AccountNumber NVarChar(25)
SET @AccountNumber = '123456789'

SELECT *
FROM Account
WHERE Number = @AccountNumber


Since this table has over 10 million rows, the second query takes over 30 seconds while the first query takes only a few milliseconds. Do I really have to go and change all of my queries to not use parameters?







performance sql-server-2005






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited May 18 at 22:30









window.document

1436




1436










asked Jul 22 '09 at 18:10









Stefan MoserStefan Moser

1407




1407












  • Should this belong on stackoverflow?

    – gbn
    Jul 22 '09 at 18:20

















  • Should this belong on stackoverflow?

    – gbn
    Jul 22 '09 at 18:20
















Should this belong on stackoverflow?

– gbn
Jul 22 '09 at 18:20





Should this belong on stackoverflow?

– gbn
Jul 22 '09 at 18:20










1 Answer
1






active

oldest

votes


















6














There are differences between using constants and variables because, simply, SQL Server tries to optimise for the general case.



However, in this instance, my first thought is that data type precedence causing implicit conversion. What data type is the Number column?



Example: say it's varchar(25). nvarchar has higher precedence then varchar so the column is implicitly converted before comparison.



I've been bitten recently by comparing varchar vs SUSER_SNAME. And I should know better.






share|improve this answer























  • You're right, Number is VarChar(25) and when I change the variable to be a VarChar(25) it uses an index seek. Thanks!

    – Stefan Moser
    Jul 22 '09 at 18:27











Your Answer








StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "2"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);

else
createEditor();

);

function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);



);













draft saved

draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fserverfault.com%2fquestions%2f44181%2fwhy-wont-sql-server-use-an-index-seek-when-running-a-parameterized-query%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes









6














There are differences between using constants and variables because, simply, SQL Server tries to optimise for the general case.



However, in this instance, my first thought is that data type precedence causing implicit conversion. What data type is the Number column?



Example: say it's varchar(25). nvarchar has higher precedence then varchar so the column is implicitly converted before comparison.



I've been bitten recently by comparing varchar vs SUSER_SNAME. And I should know better.






share|improve this answer























  • You're right, Number is VarChar(25) and when I change the variable to be a VarChar(25) it uses an index seek. Thanks!

    – Stefan Moser
    Jul 22 '09 at 18:27















6














There are differences between using constants and variables because, simply, SQL Server tries to optimise for the general case.



However, in this instance, my first thought is that data type precedence causing implicit conversion. What data type is the Number column?



Example: say it's varchar(25). nvarchar has higher precedence then varchar so the column is implicitly converted before comparison.



I've been bitten recently by comparing varchar vs SUSER_SNAME. And I should know better.






share|improve this answer























  • You're right, Number is VarChar(25) and when I change the variable to be a VarChar(25) it uses an index seek. Thanks!

    – Stefan Moser
    Jul 22 '09 at 18:27













6












6








6







There are differences between using constants and variables because, simply, SQL Server tries to optimise for the general case.



However, in this instance, my first thought is that data type precedence causing implicit conversion. What data type is the Number column?



Example: say it's varchar(25). nvarchar has higher precedence then varchar so the column is implicitly converted before comparison.



I've been bitten recently by comparing varchar vs SUSER_SNAME. And I should know better.






share|improve this answer













There are differences between using constants and variables because, simply, SQL Server tries to optimise for the general case.



However, in this instance, my first thought is that data type precedence causing implicit conversion. What data type is the Number column?



Example: say it's varchar(25). nvarchar has higher precedence then varchar so the column is implicitly converted before comparison.



I've been bitten recently by comparing varchar vs SUSER_SNAME. And I should know better.







share|improve this answer












share|improve this answer



share|improve this answer










answered Jul 22 '09 at 18:16









gbngbn

5,74111421




5,74111421












  • You're right, Number is VarChar(25) and when I change the variable to be a VarChar(25) it uses an index seek. Thanks!

    – Stefan Moser
    Jul 22 '09 at 18:27

















  • You're right, Number is VarChar(25) and when I change the variable to be a VarChar(25) it uses an index seek. Thanks!

    – Stefan Moser
    Jul 22 '09 at 18:27
















You're right, Number is VarChar(25) and when I change the variable to be a VarChar(25) it uses an index seek. Thanks!

– Stefan Moser
Jul 22 '09 at 18:27





You're right, Number is VarChar(25) and when I change the variable to be a VarChar(25) it uses an index seek. Thanks!

– Stefan Moser
Jul 22 '09 at 18:27

















draft saved

draft discarded
















































Thanks for contributing an answer to Server Fault!


  • Please be sure to answer the question. Provide details and share your research!

But avoid


  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.

To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fserverfault.com%2fquestions%2f44181%2fwhy-wont-sql-server-use-an-index-seek-when-running-a-parameterized-query%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Club Baloncesto Breogán Índice Historia | Pavillón | Nome | O Breogán na cultura popular | Xogadores | Adestradores | Presidentes | Palmarés | Historial | Líderes | Notas | Véxase tamén | Menú de navegacióncbbreogan.galCadroGuía oficial da ACB 2009-10, páxina 201Guía oficial ACB 1992, páxina 183. Editorial DB.É de 6.500 espectadores sentados axeitándose á última normativa"Estudiantes Junior, entre as mellores canteiras"o orixinalHemeroteca El Mundo Deportivo, 16 setembro de 1970, páxina 12Historia do BreogánAlfredo Pérez, o último canoneiroHistoria C.B. BreogánHemeroteca de El Mundo DeportivoJimmy Wright, norteamericano do Breogán deixará Lugo por ameazas de morteResultados de Breogán en 1986-87Resultados de Breogán en 1990-91Ficha de Velimir Perasović en acb.comResultados de Breogán en 1994-95Breogán arrasa al Barça. "El Mundo Deportivo", 27 de setembro de 1999, páxina 58CB Breogán - FC BarcelonaA FEB invita a participar nunha nova Liga EuropeaCharlie Bell na prensa estatalMáximos anotadores 2005Tempada 2005-06 : Tódolos Xogadores da Xornada""Non quero pensar nunha man negra, mais pregúntome que está a pasar""o orixinalRaúl López, orgulloso dos xogadores, presume da boa saúde económica do BreogánJulio González confirma que cesa como presidente del BreogánHomenaxe a Lisardo GómezA tempada do rexurdimento celesteEntrevista a Lisardo GómezEl COB dinamita el Pazo para forzar el quinto (69-73)Cafés Candelas, patrocinador del CB Breogán"Suso Lázare, novo presidente do Breogán"o orixinalCafés Candelas Breogán firma el mayor triunfo de la historiaEl Breogán realizará 17 homenajes por su cincuenta aniversario"O Breogán honra ao seu fundador e primeiro presidente"o orixinalMiguel Giao recibiu a homenaxe do PazoHomenaxe aos primeiros gladiadores celestesO home que nos amosa como ver o Breo co corazónTita Franco será homenaxeada polos #50anosdeBreoJulio Vila recibirá unha homenaxe in memoriam polos #50anosdeBreo"O Breogán homenaxeará aos seus aboados máis veteráns"Pechada ovación a «Capi» Sanmartín e Ricardo «Corazón de González»Homenaxe por décadas de informaciónPaco García volve ao Pazo con motivo do 50 aniversario"Resultados y clasificaciones""O Cafés Candelas Breogán, campión da Copa Princesa""O Cafés Candelas Breogán, equipo ACB"C.B. Breogán"Proxecto social"o orixinal"Centros asociados"o orixinalFicha en imdb.comMario Camus trata la recuperación del amor en 'La vieja música', su última película"Páxina web oficial""Club Baloncesto Breogán""C. B. Breogán S.A.D."eehttp://www.fegaba.com

Vilaño, A Laracha Índice Patrimonio | Lugares e parroquias | Véxase tamén | Menú de navegación43°14′52″N 8°36′03″O / 43.24775, -8.60070

Cegueira Índice Epidemioloxía | Deficiencia visual | Tipos de cegueira | Principais causas de cegueira | Tratamento | Técnicas de adaptación e axudas | Vida dos cegos | Primeiros auxilios | Crenzas respecto das persoas cegas | Crenzas das persoas cegas | O neno deficiente visual | Aspectos psicolóxicos da cegueira | Notas | Véxase tamén | Menú de navegación54.054.154.436928256blindnessDicionario da Real Academia GalegaPortal das Palabras"International Standards: Visual Standards — Aspects and Ranges of Vision Loss with Emphasis on Population Surveys.""Visual impairment and blindness""Presentan un plan para previr a cegueira"o orixinalACCDV Associació Catalana de Cecs i Disminuïts Visuals - PMFTrachoma"Effect of gene therapy on visual function in Leber's congenital amaurosis"1844137110.1056/NEJMoa0802268Cans guía - os mellores amigos dos cegosArquivadoEscola de cans guía para cegos en Mortágua, PortugalArquivado"Tecnología para ciegos y deficientes visuales. Recopilación de recursos gratuitos en la Red""Colorino""‘COL.diesis’, escuchar los sonidos del color""COL.diesis: Transforming Colour into Melody and Implementing the Result in a Colour Sensor Device"o orixinal"Sistema de desarrollo de sinestesia color-sonido para invidentes utilizando un protocolo de audio""Enseñanza táctil - geometría y color. Juegos didácticos para niños ciegos y videntes""Sistema Constanz"L'ocupació laboral dels cecs a l'Estat espanyol està pràcticament equiparada a la de les persones amb visió, entrevista amb Pedro ZuritaONCE (Organización Nacional de Cegos de España)Prevención da cegueiraDescrición de deficiencias visuais (Disc@pnet)Braillín, un boneco atractivo para calquera neno, con ou sen discapacidade, que permite familiarizarse co sistema de escritura e lectura brailleAxudas Técnicas36838ID00897494007150-90057129528256DOID:1432HP:0000618D001766C10.597.751.941.162C97109C0155020