sql >> Databasteknik >  >> RDS >> Sqlserver

SQL SERVER 2008 JOIN-tips

Eftersom detta berövar optimeraren möjligheten att överväga andra metoder som kan vara mer effektiva.

När datadistributionen (som optimeraren fattar sina beslut på) är kraftigt skev och statistiken inte kan representera den korrekt.

Det här är olika algoritmer.

  1. LOOP är kapslade loopar:för varje post från den yttre tabellen, söks den inre tabellen efter matchningar (med hjälp av indexet för tillgängligt). Snabbast när endast en liten del av poster från båda tabellerna uppfyller JOIN och WHERE villkor.

  2. MERGE sorterar båda tabellerna går igenom dem i sorteringsordningen och hoppar över de omatchade posterna. Snabbast för FULL JOIN s och när båda postuppsättningarna redan är sorterade (från tidigare sorteringsoperationer eller när indexåtkomstvägen används)

  3. HASH bygga en hashtabell i den tillfälliga lagringen (minne eller tempdb ) från en av tabellerna och söker efter varje post från den andra. Snabbast om den stora delen av poster från endera tabellen matchar WHERE och JOIN skick.



  1. Finns det ett sätt att indexera i postgres för snabba delsträngsökningar

  2. Fast Anrop till odefinierad funktion oci_connect() med XAMPP

  3. Flera rader till ett kommaseparerat värde i SQL Server

  4. hur man laddar upp mer än en bild till servern (mysql-databas) med php och android