sql >> Databasteknik >  >> RDS >> Sqlserver

Vad är användningen av en markör i SQL Server?

Markörer är en mekanism för att explicit räkna upp raderna i en resultatuppsättning, snarare än att hämta den som sådan.

Men även om de kan vara mer bekväma att använda för programmerare som är vana vid att skriva While Not RS.EOF Do ... , de är vanligtvis en sak som bör undvikas inom SQL Server-lagrade procedurer om det alls är möjligt -- om du kan skriva en fråga utan att använda markörer, ger du optimeraren en mycket bättre chans att hitta ett snabbt sätt att implementera den.

I ärlighetens namn har jag aldrig hittat ett realistiskt användningsfall för en markör som inte gick att undvika, med undantag för några administrativa uppgifter som att gå över alla index i katalogen och bygga om dem. Jag antar att de kan ha vissa användningsområden i rapportgenerering eller sammanslagningar, men det är förmodligen mer effektivt att göra det markörliknande arbetet i en applikation som pratar med databasen, och låter databasmotorn göra det den är bäst på -- ställa in manipulation.



  1. Hur man skapar PL/SQL svag referensmarkör i Oracle Database

  2. MySQL-grupp efter dag med datetime som blandar samma datum från olika månader

  3. Sök efter produkter med flera kriterier

  4. Uppgradering av en varchar-kolumn till enumtyp i postgresql