Delen via


sys.dm_external_script_execution_stats

Van toepassing op: SQL Server 2016 (13.x) en latere versies van Azure SQL Managed Instance

Retourneert één rij voor elk type externe scriptaanvraag. De aanvragen voor externe scripts worden gegroepeerd op basis van de ondersteunde externe scripttaal. Er wordt één rij gegenereerd voor elke geregistreerde externe scriptfunctie. Willekeurige externe scriptfuncties worden niet vastgelegd tenzij ze worden verzonden door een bovenliggend proces, zoals rxExec.

Opmerking

Deze dynamische beheerweergave (DMV) is alleen beschikbaar als u de functie hebt geïnstalleerd en ingeschakeld die ondersteuning biedt voor het uitvoeren van externe scripts. Zie R Services in SQL Server 2016, Machine Learning Services (R, Python) in SQL Server 2017 en hoger enAzure SQL Managed Instance Machine Learning Services voor meer informatie.

Kolomnaam Gegevenstype Description
language nvarchar Naam van de geregistreerde externe scripttaal. Elk extern script moet de taal in de scriptaanvraag opgeven om het bijbehorende startprogramma te starten.
counter_name nvarchar Naam van een geregistreerde externe scriptfunctie. Is niet 'nullable'.
counter_value geheel getal Het totale aantal exemplaren dat de geregistreerde externe scriptfunctie op de server is aangeroepen. Deze waarde is cumulatief, te beginnen met de tijd dat de functie op het exemplaar is geïnstalleerd en kan niet opnieuw worden ingesteld.

Permissions

Voor SQL Server 2019 (15.x) en eerdere versies is de machtiging VIEW SERVER STATE op de server vereist.

Voor SQL Server 2022 (16.x) en latere versies is de machtiging VIEW SERVER PERFORMANCE STATE op de server vereist.

Gebruikers die externe scripts uitvoeren, moeten beschikken over de extra machtiging EXECUTE ANY EXTERNAL SCRIPT. Deze DMV kan echter worden gebruikt door beheerders zonder deze machtiging.

Opmerkingen

Deze DMV wordt geleverd voor interne telemetrie om het algehele gebruik van de nieuwe functie voor het uitvoeren van externe scripts in SQL Server te bewaken. De telemetrieservice wordt gestart wanneer LaunchPad een schijfteller uitvoert en incrementeert telkens wanneer een geregistreerde externe scriptfunctie wordt aangeroepen.

Over het algemeen zijn prestatiemeteritems alleen geldig zolang het proces dat ze heeft gegenereerd actief is. Daarom kan een query op een DMV geen gedetailleerde gegevens weergeven voor services die niet meer worden uitgevoerd. Als een startprogramma bijvoorbeeld extern script uitvoert en deze toch snel voltooit, worden in een conventionele DMV mogelijk geen gegevens weergegeven.

Daarom worden de tellers die door deze DMV worden bijgehouden, bewaard en blijft de status behouden sys.dm_external_script_requests door schrijfbewerkingen naar schijf te gebruiken, zelfs als het exemplaar wordt afgesloten.

Tellerwaarden

In SQL Server 2016 (13.x) is de enige ondersteunde externe taal R en worden de externe scriptaanvragen verwerkt door R Services (In-Database). In SQL Server 2017 (14.x) en latere versies, en in Azure SQL Managed Instance worden zowel R als Python ondersteund in externe talen en worden de aanvragen voor externe scripts verwerkt door Machine Learning Services.

Voor R houdt deze DMV het aantal R-aanroepen bij dat op een exemplaar wordt gedaan. Als bijvoorbeeld rxLinMod parallel wordt aangeroepen en uitgevoerd, wordt de teller met 1 verhoogd.

Voor de R-taal vertegenwoordigen de tellerwaarden die worden weergegeven in het veld counter_name de namen van geregistreerde ScaleR-functies. De waarden in het veld counter_value vertegenwoordigen het cumulatieve aantal exemplaren dat de specifieke ScaleR-functie heeft.

Voor Python houdt deze DMV het aantal Python-aanroepen bij dat op een exemplaar wordt gedaan.

Het aantal begint wanneer de functie is geïnstalleerd en ingeschakeld op het exemplaar en is cumulatief totdat het bestand dat de status onderhoudt, wordt verwijderd of overschreven door een beheerder. Daarom is het over het algemeen niet mogelijk om de waarden in counter_value opnieuw in te stellen. Als u het gebruik per sessie, kalendertijden of andere intervallen wilt bewaken, raden we u aan de aantallen vast te leggen aan een tabel.

Registratie van externe scriptfuncties in R

R ondersteunt willekeurige scripts en de R-community biedt duizenden pakketten, elk met hun eigen functies en methoden. Deze DMV bewaakt echter alleen de ScaleR-functies die zijn geïnstalleerd met SQL Server 2016 (13.x) R Services.

Registratie van deze functies wordt uitgevoerd wanneer de functie is geïnstalleerd en geregistreerde functies kunnen niet worden toegevoegd of verwijderd.

Voorbeelden

Het aantal R-scripts weergeven dat op de server wordt uitgevoerd

In het volgende voorbeeld wordt het cumulatieve aantal uitvoeringen van externe scripts voor de R-taal weergegeven.

SELECT counter_name, counter_value
FROM sys.dm_external_script_execution_stats
WHERE language = 'R';

Het aantal Python-scripts weergeven dat op de server wordt uitgevoerd

In het volgende voorbeeld wordt het cumulatieve aantal uitvoeringen van externe scripts voor de Python-taal weergegeven.

SELECT counter_name, counter_value
FROM sys.dm_external_script_execution_stats
WHERE language = 'Python';

Zie ook