Delen via


De belasting van het afstemmen van de productieserver verminderen

van toepassing op:SQL ServerAzure SQL Database-

Database Engine Tuning Advisor is afhankelijk van de query-optimalisator voor het analyseren van een workload en het doen van afstemmingsaanbevelingen. Als u deze analyse uitvoert op de productieserver, verhoogt dit de serverbelasting en kan het de prestaties van de server tijdens de afstemmingssessie negatief beïnvloeden. U kunt de impact op de belasting van de server tijdens een afstemmingssessie verminderen door naast de productieserver een testserver te gebruiken.

Hoe Database Engine Tuning Advisor gebruikmaakt van een testserver

De traditionele manier om een testserver te gebruiken, is door alle gegevens van uw productieserver naar uw testserver te kopiëren, de testserver af te stemmen en vervolgens de aanbeveling op uw productieserver te implementeren. Dit proces elimineert de invloed van de prestaties op uw productieserver, maar is toch niet de optimale oplossing. Het kopiëren van grote hoeveelheden gegevens van de productie naar de testserver kan bijvoorbeeld aanzienlijke hoeveelheden tijd en resources verbruiken. Bovendien is testserverhardware zelden zo krachtig als de hardware die wordt geïmplementeerd voor productieservers. Het afstemmingsproces is afhankelijk van de optimalisatiefunctie voor query's en de aanbevelingen die worden gegenereerd, zijn deels gebaseerd op de onderliggende hardware. Als de hardware van de test- en productieserver niet identiek zijn, wordt de aanbevelingskwaliteit van Database Engine Tuning Advisor verminderd.

Om deze problemen te voorkomen, tuneseert Database Engine Tuning Advisor een database op een productieserver door de meeste afstemmingsbelasting op een testserver te offloaden. Dit doet u met behulp van de hardwareconfiguratiegegevens van de productieserver en zonder dat u de gegevens van de productieserver daadwerkelijk naar de testserver kopieert. Database Engine Tuning Advisor kopieert geen werkelijke gegevens van de productieserver naar de testserver. Alleen de metagegevens en de benodigde statistieken worden gekopieerd.

De volgende stappen geven een overzicht van het proces voor het afstemmen van een productiedatabase op een testserver:

  1. Zorg ervoor dat de gebruiker die de testserver wil gebruiken op beide servers bestaat.

    Voordat u begint, moet u ervoor zorgen dat de gebruiker die de testserver wil gebruiken om een database af te stemmen op de productieserver op beide servers bestaat. Hiervoor moet u de gebruiker en hun aanmelding op de testserver maken. Als u lid bent van de sysadmin vaste serverfunctie op beide computers, is deze stap niet nodig.

  2. Stem de werkbelasting op de testserver af.

    Als u een workload op een testserver wilt afstemmen, moet u een XML-invoerbestand gebruiken met het dta opdrachtregelprogramma. Geef in het XML-invoerbestand de naam van uw testserver op met het TestServer-subelement, naast het specificeren van de waarden voor de andere subelementen onder het TuningOptions bovenliggende element.

    Tijdens het afstemmingsproces maakt Database Engine Tuning Advisor een shell-database op de testserver. Als u deze shell-database wilt maken en afstemmen, voert Database Engine Tuning Advisor de volgende aanroepen uit naar de productieserver:

    1. Database Engine Tuning Advisor importeert metagegevens uit de productiedatabase naar de servershell-testdatabase. Deze metagegevens omvatten lege tabellen, indexen, weergaven, opgeslagen procedures, triggers enzovoort. Hierdoor kunnen de workloadquery's worden uitgevoerd op basis van de servershell-database van de testserver.

    2. Database Engine Tuning Advisor importeert statistieken van de productieserver, zodat de queryoptimalisatie query's op de testserver nauwkeurig kan optimaliseren.

    3. Database Engine Tuning Advisor importeert hardwareparameters die het aantal processors en het beschikbare geheugen van de productieserver opgeven, om de query optimizer van de informatie te voorzien die nodig is om een queryplan te genereren.

  3. Nadat Database Engine Tuning Advisor klaar is met het afstemmen van de shell-database van de testserver, wordt er een aanbeveling voor afstemming gegenereerd.

  4. Pas de aanbeveling toe die is ontvangen van het afstemmen van de testserver op de productieserver.

In de volgende afbeelding ziet u het testserver- en productieserverscenario:

testservergebruik van Database Engine Tuning Advisor

Notitie

De functie voor het afstemmen van de testserver wordt niet ondersteund in de grafische gebruikersinterface (GUI) van Database Engine Tuning Advisor.

Voorbeeld

Zorg er eerst voor dat de gebruiker die het afstemmen wil uitvoeren, bestaat op zowel de test- als productieservers.

Nadat de gebruikersgegevens naar uw testserver zijn gekopieerd, kunt u de sessie voor het afstemmen van de testserver definiëren in het XML-invoerbestand Database Engine Tuning Advisor. In het volgende voorbeeld van een XML-invoerbestand ziet u hoe u een testserver kunt opgeven om een database af te stemmen met Database Engine Tuning Advisor.

In dit voorbeeld wordt de MyDatabaseName database afgestemd op MyServerName. Het Transact-SQL-script, MyWorkloadScript.sql, wordt gebruikt als workload. Deze workload bevat gebeurtenissen die worden uitgevoerd op MyDatabaseName. De meeste queryoptimalisatie-aanroepen naar deze database, die plaatsvinden als onderdeel van het afstemmingsproces, worden verwerkt door de shelldatabase die zich op MyTestServerNamebevindt. De shell-database bestaat uit metagegevens en statistieken. Dit proces resulteert erin dat de afstemmingsoverhead naar de testserver wordt afgewenteld. Wanneer Database Engine Tuning Advisor de aanbeveling voor afstemming genereert met behulp van dit XML-invoerbestand, moet het alleen rekening houden met indexen (<FeatureSet>IDX</FeatureSet>), geen partitionering en hoeft u geen van de bestaande fysieke ontwerpstructuren in MyDatabaseNamete bewaren.

<?xml version="1.0" encoding="utf-16" ?>  
<DTAXML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/sqlserver/2004/07/dta">  
  <DTAInput>  
    <Server>  
      <Name>MyServerName</Name>  
      <Database>  
        <Name>MyDatabaseName</Name>  
      </Database>  
    </Server>  
    <Workload>  
      <File>MyWorkloadScript.sql</File>  
    </Workload>  
    <TuningOptions>  
      <TestServer>MyTestServerName</TestServer>  
      <FeatureSet>IDX</FeatureSet>  
      <Partitioning>NONE</Partitioning>  
      <KeepExisting>NONE</KeepExisting>  
    </TuningOptions>  
  </DTAInput>  
</DTAXML>  

Zie ook

overwegingen voor het gebruik van testservers
XML-invoerbestandsreferentie (Database Engine Tuning Advisor)