Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Automatically translated by Lango

Reorganize Database Indexes

...

Datenbankindizes reorganisieren

Die automatische Bereinigungsfunktion von Connect entfernt eine große Anzahl von Datensätzen, was zu einer Fragmentierung der entsprechenden Datenbankindizes führt. Um dieses Problem zu beheben, sollte das folgende SQL-Skript für die tägliche Datenbankwartung eingeplant werden:

Code Block
languagesql
DBCC INDEXDEFRAG(0, 'ContextIndices')
DBCC INDEXDEFRAG(0, 'ContextLogs')
DBCC INDEXDEFRAG(0, 'Contexts')
DBCC INDEXDEFRAG(0, 'PerformanceRecords')

To reorganize all Connect application specific indexes, use th following SQL scriptUm alle anwendungsspezifischen Indizes von Connect zu reorganisieren, verwenden Sie das folgende SQL-Skript:

Code Block
languagesql
DBCC INDEXDEFRAG(0, 'ConnectObjects')
DBCC INDEXDEFRAG(0, 'ConnectObjectsHistory')
DBCC INDEXDEFRAG(0, 'ContextIndices')
DBCC INDEXDEFRAG(0, 'ContextLogs')
DBCC INDEXDEFRAG(0, 'Contexts')
DBCC INDEXDEFRAG(0, 'PerformanceRecords')
DBCC INDEXDEFRAG(0, 'ScenarioRegistrations')
DBCC INDEXDEFRAG(0, 'SecureStoreItems')

Delete obsolete data

...

Löschen veralteter Daten

Wenn alle Kontexte und Leistungsdatensätze, die vor einem bestimmten Datum erstellt wurden, gelöscht werden sollen, kann das folgende Skript verwendet werden. Beachten Sie, dass fragmentierte Indizes während des Löschvorgangs zu Leistungseinbußen führen können. Defragmentieren Sie bei Bedarf diese Indizes vor dem Löschen der Daten. Stellen Sie sicher, dass Sie das Datum in der ersten Zeile des Skripts nach Bedarf anpassen:

Code Block
languagesql
DECLARE @DeleteBefore DATETIME = CAST('2000-12-31T00:00:00' AS DATETIME);

DELETE FROM Contexts WHERE FlowContextId IN (SELECT Id FROM Contexts WHERE FlowContextId IS NULL AND CreateTime < @DeleteBefore);
DELETE FROM ContextIndices WHERE FlowContextId IN (SELECT Id FROM Contexts WHERE FlowContextId IS NULL AND CreateTime < @DeleteBefore);
DELETE FROM ContextLogs WHERE FlowContextId IN (SELECT Id FROM Contexts WHERE FlowContextId IS NULL AND CreateTime < @DeleteBefore);
DELETE FROM Contexts WHERE FlowContextId IS NULL AND CreateTime < @DeleteBefore;
DELETE FROM PerformanceRecords WHERE [Time] < @DeleteBefore;

DBCC INDEXDEFRAG(0, 'Contexts')
DBCC INDEXDEFRAG(0, 'ContextIndices')
DBCC INDEXDEFRAG(0, 'ContextLogs')
DBCC INDEXDEFRAG(0, 'PerformanceRecords')

...

Planen Sie die Reorganisation von Indizes bei Verwendung von Azure SQL Database

...

Schritt 1:

...

Azure Automation

...

If you do not have an existing Azure Automation account you need to setup a new one. Proceed as follows:

  1. Navigate to the Azure portal.

  2. Click on “Create a resource” and search for “Automation”.

  3. Select “Automation” and click “Create”.

  4. Enter a unique name for your Automation account.

  5. Select an existing resource group or create a new one.

  6. Choose the appropriate Azure region.

  7. Click “Review + create” and then “Create”.

Step 2: Add credentials for database access

  1. In the Azure portal, navigate to your newly created Automation account.

  2. Under Shared Resources, select Credentials.

  3. Click “Add credentials”.

  4. Enter a Name (e.g., “ConnectDatabaseCredentials”).

  5. Enter the database administrator user name and passwort and re-enter the password to confirm it.

  6. Click “Create”.

Step 3: Create a Runbook

  1. In the Azure portal, navigate to your newly created Automation account.

  2. Under Process Automation, select Runbooks.

  3. Click “Browse catalog” and search for “fragmentation”.

  4. Select the template “Indexes tables in an Azure database if they have a high fragmentation“.

  5. Click “Select”.

  6. Enter a Name (e.g., “IndexHighFragmentationTables”).

  7. Click “Import”.

  8. Navigate to the first line of code starting with “workflow” (below the comments).

  9. Replace the workflow name “Update-SQLIndexRunbook“ with the name of your Runbook (e.g., “IndexHighFragmentationTables”).

  10. Click “Save”.

Step 4: Test and publish the Runnbook

  1. Select tab “Test”.

  2. On the left side enter the parameters:
    SQLSERVER: The host name of the SQL Server
    DATABASE: The name of the database
    SQLCREDENTIALNAME: The name of the SQL Server credentials (e.g., “ConnectDatabaseCredentials”)

  3. Click Start to test the Runbook manually.

  4. Once the test is completed successfully, click the “X” in the upper left corner to return to the editor. The browser shows a dialog box asking you to confirm this action.

  5. Click “Publish” and then “Yes”.

Step 5: Create a Schedule

...

In the Azure portal, navigate to your Runbook.

...

Under Resources, select Schedules.

...

Click “Schedule”.

...

Select a Scheudle or create a new one.

...

Click “Parameters”.

...

Enter the parameters:
SQLSERVER: The host name of the SQL Server
DATABASE: The name of the database
SQLCREDENTIALNAME: The name of the SQL Server credentials (e.g., “ConnectDatabaseCredentials”)

...

Click “OK”

...

-Konto einrichten

Wenn Sie kein bestehendes Azure Automation-Konto haben, müssen Sie ein neues einrichten. Gehen Sie wie folgt vor:

  1. Navigieren Sie zum Azure-Portal.

  2. Klicken Sie auf "Eine Ressource erstellen" und suchen Sie nach "Automatisierung".

  3. Wählen Sie "Automatisierung" und klicken Sie auf "Erstellen".

  4. Geben Sie einen eindeutigen Namen für Ihr Automatisierungskonto ein.

  5. Wählen Sie eine bestehende Ressourcengruppe aus oder erstellen Sie eine neue Gruppe.

  6. Wählen Sie die entsprechende Azure-Region.

  7. Klicken Sie auf "Überprüfen + Erstellen" und dann auf "Erstellen".

Schritt 2: Anmeldeinformationen für den Datenbankzugriff hinzufügen

  1. Navigieren Sie im Azure-Portal zu Ihrem neu erstellten Automation-Konto.

  2. Wählen Sie unter Shared Resources die Option Credentials.

  3. Klicken Sie auf "Anmeldeinformationen hinzufügen".

  4. Geben Sie einen Namen ein (z. B. "ConnectDatabaseCredentials").

  5. Geben Sie den Benutzernamen und das Kennwort des Datenbankadministrators ein und bestätigen Sie das Kennwort durch erneute Eingabe.

  6. Klicken Sie auf "Erstellen".

Schritt 3: Erstellen eines Runbooks

  1. Navigieren Sie im Azure-Portal zu Ihrem neu erstellten Automation-Konto.

  2. Wählen Sie unter Prozessautomatisierung die Option Runbooks.

  3. Klicken Sie auf "Katalog durchsuchen" und suchen Sie nach "Fragmentierung".

  4. Wählen Sie die Vorlage "Indiziert Tabellen in einer Azure-Datenbank, wenn sie eine hohe Fragmentierung aufweisen".

  5. Klicken Sie auf "Auswählen".

  6. Geben Sie einen Namen ein (z. B. "IndexHighFragmentationTables").

  7. Klicken Sie auf "Importieren".

  8. Navigieren Sie zur ersten Codezeile, die mit "workflow" beginnt (unterhalb der Kommentare).

  9. Ersetzen Sie den Workflow-Namen "Update-SQLIndexRunbook" durch den Namen Ihres Runbooks (z. B. "IndexHighFragmentationTables").

  10. Klicken Sie auf "Speichern".

Schritt 4: Testen und veröffentlichen Sie das Runnbook

  1. Wählen Sie die Registerkarte "Test".

  2. Geben Sie auf der linken Seite die Parameter ein:
    SQLSERVER: Der Hostname des SQL-Servers
    DATABASE: Der Name der Datenbank
    SQLCREDENTIALNAME: Der Name der SQL Server-Anmeldeinformationen (z. B. "ConnectDatabaseCredentials")

  3. Klicken Sie auf Start, um das Runbook manuell zu testen.

  4. Sobald der Test erfolgreich abgeschlossen ist, klicken Sie auf das "X" in der oberen linken Ecke, um zum Editor zurückzukehren. Der Browser zeigt ein Dialogfeld an, in dem Sie aufgefordert werden, diese Aktion zu bestätigen.

  5. Klicken Sie auf "Veröffentlichen" und dann auf "Ja".

Schritt 5: Einen Zeitplan erstellen

  1. Navigieren Sie im Azure-Portal zu Ihrem Runbook.

  2. Wählen Sie unter Ressourcen die Option Zeitpläne.

  3. Klicken Sie auf "Planen".

  4. Wählen Sie eine Scheudle aus oder erstellen Sie eine neue.

  5. Klicken Sie auf "Parameter".

  6. Geben Sie die Parameter ein:
    SQLSERVER: Der Hostname des SQL-Servers
    DATABASE: Der Name der Datenbank
    SQLCREDENTIALNAME: Der Name der SQL Server-Anmeldeinformationen (z. B. "ConnectDatabaseCredentials")

  7. Klicken Sie auf "OK".

  8. Klicken Sie auf "OK".