Dela via


Serverkonfiguration: markörtröskel

Gäller för:SQL Server

Den här artikeln beskriver hur du konfigurerar serverkonfigurationsalternativet cursor threshold i SQL Server med hjälp av SQL Server Management Studio eller Transact-SQL. Alternativet cursor threshold anger antalet rader i markören som markörnycklarna genereras asynkront på. När markörer genererar en nyckeluppsättning för en resultatuppsättning beräknar frågeoptimeraren antalet rader som returneras för den resultatuppsättningen. Om frågeoptimeraren uppskattar att antalet returnerade rader är större än det här tröskelvärdet genereras markören asynkront, vilket gör att användaren kan hämta rader från markören medan markören fortsätter att fyllas i. Annars genereras markören synkront och frågan väntar tills alla rader returneras.

Begränsningar

SQL Server stöder inte generering av nyckeluppsättningsdrivna eller statiska Transact-SQL markörer asynkront. Transact-SQL marköråtgärder som OPEN eller FETCH är batchbaserade, så det finns inget behov av den asynkrona genereringen av Transact-SQL markörer. SQL Server fortsätter att ha stöd för api-servermarkörer (asynkrona keyset-drivna eller statiska program) där låg svarstid OPEN är ett problem, på grund av klientens rundresor för varje marköråtgärd.

Frågeoptimerarens noggrannhet för att fastställa en uppskattning av antalet rader i en nyckeluppsättning beror på valutan för statistiken för var och en av tabellerna i markören.

Recommendations

Det här alternativet är ett avancerat alternativ och bör endast ändras av en erfaren databasproffs.

Om du anger cursor threshold till -1genereras alla nyckeluppsättningar synkront, vilket gynnar små marköruppsättningar. Om du anger cursor threshold till 0genereras alla markörnycklar asynkront. Med andra värden jämför frågeoptimeraren antalet förväntade rader i marköruppsättningen och skapar nyckeluppsättningen asynkront om den överskrider det antal som anges i cursor threshold. Ställ inte in cursor threshold för lågt eftersom små resultatuppsättningar är bättre byggda synkront.

Permissions

Kör behörigheter på sp_configure utan parametrar eller med endast den första parametern beviljas alla användare som standard. Om du vill köra sp_configure med båda parametrarna för att ändra ett konfigurationsalternativ eller för att köra -instruktionen RECONFIGURE måste en användare beviljas behörighet på ALTER SETTINGS servernivå. Behörigheten ALTER SETTINGS innehas implicit av de fasta serverrollerna sysadmin och serveradmin .

Använda SQL Server Management Studio

  1. Högerklicka på en server i Object Explorer och välj Egenskaper.

  2. Välj noden Avancerat .

  3. Under Övrigt ändrar cursor threshold du alternativet till önskat värde.

Använd Transact-SQL

  1. Anslut till databasmotorn.

  2. I standardfältet väljer du Ny fråga.

  3. Kopiera och klistra in följande exempel i frågefönstret och välj Kör. Det här exemplet visar hur du använder sp_configure för att ange cursor threshold alternativet till 0 så att markörnycklarna genereras asynkront.

    USE master;
    GO
    
    EXECUTE sp_configure 'show advanced options', 1;
    GO
    
    RECONFIGURE;
    GO
    
    EXECUTE sp_configure 'cursor threshold', 0;
    GO
    
    RECONFIGURE;
    GO
    
    EXECUTE sp_configure 'show advanced options', 0;
    GO
    
    RECONFIGURE;
    GO
    

Mer information finns i Server-konfigurationsalternativ.

Följ upp: När du har konfigurerat markörtröskelalternativet

Inställningen börjar gälla omedelbart utan att servern startas om.