sql >> Databasteknik >  >> RDS >> PostgreSQL

Vid vilken kardinalitet byter SQL Server till en indexsökning (mot sök)

När det gäller SQL Server har detta kallats tipppunkten, varav Kimberleys blogginlägg är bra att läsa om det. http://www.sqlskills.com/BLOGS/KIMBERLY /category/The-Tipping-Point.aspx

Vipppunkten är en riktlinje på 25%-33% av det totala antalet sidor i tabellen, uttryckt som rader, t.ex. 10k datasidor skulle ge en tipppunkt på 2500-3333 rader. Som riktlinjer är detta ganska bra, och så bra som du kommer att bli - kom ihåg att frågeplansmotorn är en svart låda, och även om den ger dig en frågeplan, säger den bara vad den beslutade, inte varför.

När det gäller att tippa ett täckande index är det dock inte särskilt lätt, även om 100 % av data väljs kommer ett täckande index fortfarande att söka överskanning i de flesta fall.

Det är vettigt, om du anser att kostnadsoptimeraren inte tilldelar någon verklig kostnad till indexsidornas hierarki, kostar det bara upp tillgången till indexets bladsidor. Vid den tidpunkten kostar det lika mycket att skanna eller söka 100 % av ett täckande index.

Jag hittade från mitt eget experiment (http://sqlfascination.com/2009/11/07/can-a-covering-nc-index-be-tipped ) att använda en mellan-sats skulle få den att skanna, men andra där klausuler inte skulle göra det - vad jag kunde säga var det enbart ner till rutten genom frågemotorn.



  1. django.db.utils.IntegrityError:duplicerat nyckelvärde bryter mot den unika begränsningen spirit_category_category_pkey

  2. Hur installerar man MySQL-python på Amazon Web Services EC2-instans?

  3. Förenkla en fråga med en LIMIT i en underfråga och WHERE-satser duplicerade i underfrågan och den yttre frågan

  4. Databasen är inte konfigurerad laravel under migreringen