2016-05-03 7 views
0

Ich möchte einen Stresstest meines SQL-Servers durch den Aufruf des Servers durch eine einfache Abfrage in einer Schleife. Ich möchte dieses Verfahren parallel ausführen. Angenommen, ich habe X-Clients, die den Server 10000 Mal in einer Schleife anrufen, werde ich Y Sekunden messen, bis die letzte Abfrage beendet ist. Ich werde messen, wie sich y und x verhalten.Wie Belastung Test Sql Server Performance vs Anzahl Anfragen pro Sekunde

Macht dieser Test Sinn?

Ich habe nur einen PC und einen dev Datenbankserver. Wie können die Abfragen in einem Multithreading-Kontext ausgeführt werden? Wenn ich weiß, dass der SQL Server einen Verbindungspool hat und meine Abfrage zwischenspeichert, muss ich etwas beachten?

+1

haben Sie eine 'DBA' geantwortet hat? Prüfen Sie, ob sie Setup- und Ausführungspläne erstellen können oder führen Sie die Performance-Test-Matrix für Sie durch. – MethodMan

Antwort

0

Sie können nicht tun, eine einfache Abfrage verwenden, da sie die Daten-Cache (wie Sie bereits erwähnt)

Sie benötigen verschiedene Abfragen zu verwenden, die Zeit in Anspruch nehmen (mindestens ein paar Sekunden bis zu ein paar Minuten). Außerdem sollte Ihre Abfrage große Datenmengen lesen und große/kleine Datenmengen an den Client zurückgeben.

ist Meine Vorschläge es auf diese Weise tun:

  1. eine Tabelle (id int, query nvarchar(max)) mit 2 Spalten erstellen. füllen Sie Ihre Tabelle mit verschiedenen Abfragen, einfach bis kompliziert, schnell auf Zeit verbrauchen. Sie benötigen möglicherweise Hunderte oder Tausende von different Abfragen.
  2. Schreiben Sie ein Multi-Thread-Programm, dass jeder Thread zufällig Abfragen aus verschiedenen Zeilen liest und ausführen. Sie benötigen möglicherweise Hunderte oder Tausende von Threads Abfrage der Datenbank.
  3. Wenn Ihre Datenbank OLTP ist und Benutzer Daten beim Lesen von Daten aktualisieren/einfügen, müssen Sie auch update/insert-Anweisungen haben.

Hinweis: Sie sollten SQL Server auf einem anderen Rechner als Ihr Programm haben, sonst wird Ihr Test nicht sehr gültig ist, weil in der realen Welt, Datenübertragungen über ein Netzwerk.

Bitte "Mark als Antwort", wenn ein Beitrag die Frage

Verwandte Themen