Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi MS SQL und Threading (https://www.delphipraxis.net/68337-ms-sql-und-threading.html)

ranftl 28. Apr 2006 08:32

Datenbank: MS Sql • Version: 2005 • Zugriff über: ADOQuerys

MS SQL und Threading
 
Hallo zusammen!

Ich habe ein Programm wo mittels drei ADOQuerys aus drei Tabellen mit Daten aus einer MS SQL Datenbank geholt werden. Mein größtes Problem ist das mehr als 100 Clients das programm verwenden und somit teilweise zur selben Zeit Abfragen durchgeführt werden.
Dadurch wird das ganze leider sehr langsam.

Würde es was bringen wenn ich jede Query in einem eigenen Thread auslagere oder wird es dadurch vielleicht noch langsamer da dann ja 3 User pro Clients auf die DB zugreifen?

Gibt es eine andere Möglichkeit dies irgendwie zu beschleunigen?

Danke
lg
Christian

mkinzler 28. Apr 2006 08:42

Re: MS SQL und Threading
 
AM MSSQL-Server kann man die Anzahl der Worker-Threads einstellen. Dadurch müsste dein gewünschtes Verhalten automatisch geschehen.

ranftl 28. Apr 2006 09:59

Re: MS SQL und Threading
 
Hallo!

Danke für deine schnelle Antwort!
Was genau macht das wenn man das umstellt.
Wird dadurch die Performance schneller trotz der 100 Clients.
Welche nachteile hat das.

Danke
mfg
Christian

mkinzler 28. Apr 2006 10:02

Re: MS SQL und Threading
 
Hiermit gibt man vor, wieviele parallele (Abfrage-)Threads pro Instanz des Servers verwendet werden.

ranftl 28. Apr 2006 10:46

Re: MS SQL und Threading
 
Hallo!

Danke, jetzt weiß ich was du meinst!
Ich habe nachgesehen bei meinen maximal 100 Usern ist dieser Parameter auf
101 eingestellt leider kann ich also nicht viel ändern.
habe ihn auf 300 gesetzt usw. bringt leider keine messbaren Ergebnisse.

Gibt es andere Möglichkeiten wie ich irgendetwas beschleunigen kann?

danke
Christian

franktron 28. Apr 2006 11:16

Re: MS SQL und Threading
 
Schonmal daran gedacht das der Server zu klein ist

Bernhard Geyer 28. Apr 2006 21:50

Re: MS SQL und Threading
 
Zitat:

Zitat von ranftl
Dadurch wird das ganze leider sehr langsam.

Das kann mehrer Gründe haben:
- Server ist generell zu schmalbrüstig. Hier ist vor allem der RAM-Ausbau entscheident
- Dein DB-Modell ist nicht optimal bzw. es gibt viele Abfragen die von keinem definierten Index providieren
- Der Clients laufen sehr oft in Sperren und werden kurzzeitig angehalten. Hier kommt eine Schwäche des MS SQL-Server < 2005 zum Tragen welcher keine Multi-Versions-Konzept unterstützt. D.h. ein rein lesender Thread kann von einer Transaktion gestoppt/blockiert werden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:21 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz