Ich muss eine Möglichkeit haben, schnell, synchron und mit minimaler Dauer in eine Tabelle einzufügen. Was ich versucht habe ("blind") ist:
- Habe überhaupt keinen Index auf dem Tisch
- Wechseln Sie zur einfachen Protokollierung (von der vollständigen Protokollierung)
Das von mir verwendete Testszenario besteht aus 100 Verbindungen, die jeweils ein INSERT ausführen und dann 0,1 Sekunden und dann erneut auf unbestimmte Zeit warten. Jeder "Inserter" protokolliert die Ausführungszeit.
Wenn ich mir die Ausführungszeiten ansehe, sehe ich manchmal 1,5 und sogar 10 Sekunden auf einem Einsatz (als Ausnahmefälle), ansonsten sehe ich typische 0,2 Sekunden.
Weiterer Kontext:
- SQL Server 2008 R2 Express (afaik die Express-Version beschränkt nur DB-Größe (4 GB), RAM (1 GB) und logische CPUs (1))
- Maschine: Laptop mit 7200 U / min Festplatte, 8 GB RAM und 8 logischen CPUs, Hosting des Servers und der Clients
- Die Tabelle besteht aus 1 BigInt ID (Identität), einem NVARCHAR (100) -Feld und NVARCHAR (MAX) (INSERTs mit einer Nutzlast von 10.000) und einer NVARCHAR (MAX) (30.000 Nutzlast bei INSERT).
Wo sollte ich nach weiteren Verbesserungen der Leistung eines solchen Prozesses suchen?