Köra lagrade procedurer

gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics

En lagrad procedur är ett exekverbart objekt som lagras i en databas. SQL Server stödjer:

  • Lagrade procedurer:

    En eller flera SQL-satser förkompilerade till en enda körbar procedur.

  • Utökade lagrade procedurer:

    C- eller C++-dynamiska länkbibliotek (DLL) skrivna till SQL Server Open Data Services API för utökade lagrade procedurer. Open Data Services API utökar kapaciteten för lagrade procedurer till att inkludera C- eller C++-kod.

När man exekverar satser kan anrop av en lagrad procurder på datakällan (istället för att direkt exekvera eller förbereda ett statement i klientapplikationen) ge:

  • Högre prestanda

    SQL-satser parsas och kompileras när procedurer skapas. Denna overhead sparas sedan när procedurerna utförs.

  • Minskad nätverksöverhead

    Att köra en procedur istället för att skicka komplexa frågor över nätverket kan minska nätverkstrafiken. Om en ODBC-applikation använder ODBC { CALL }-syntaxen för att köra en lagrad procedur gör ODBC-drivrutinen ytterligare optimeringar som eliminerar behovet av att konvertera parameterdata.

  • Större konsekvens

    Om en organisations regler implementeras i en central resurs, såsom en lagrad procedur, kan de kodas, testas och felsökas en gång. Individuella programmerare kan då använda de testade lagrade procedurerna istället för att utveckla egna implementationer.

  • Större noggrannhet

    Eftersom lagrade procedurer vanligtvis utvecklas av erfarna programmerare tenderar de att vara mer effektiva och ha färre fel än kod som utvecklats flera gånger av programmerare med olika färdighetsnivåer.

  • Tillagda funktioner

    Utökade lagrade procedurer kan använda C- och C++-funktioner som inte finns i Transact-SQL satser.

    För ett exempel på hur man anropar en lagrad procedur, se Process Return Codes and Output Parameters (ODBC).

I det här avsnittet