Webservice Allgemeines
-
Hallo,
ich bin heute zum ersten mal hier, ich hoffe ich liege mit meinem Thema nicht ganz daneben.Also ich möchte über einen Webservice welche auf eine Datenbank zugreift, in kurzen abständen Datenabrufen, kurze Abstände bedeutet 1-2s Takt, die Daten sollen dann in einer anderen Anwendung dargestellt werden. In die Datenbank laufen in unterschiendlichen abständen neue Daten ein dies kann im 5ms Takt sein. Über den Webservice sollen nun die Veränderungen von der Anwendung abgerufen werden.
Bei meinen Tests kam es nun zu einer sehr hohen Systemauslastung. Läßt sich der Webservice optimieren, oder sollte ich besser eine anderen Datenübertragung nutzten?Mfg
Phil
-
kommt darauf an wie du dein system aufgebaut hast. webservice ist schonmal nicht schlecht wenn es externe user sind welche keine direkten zugriff auf die datenbank haben sollen. was aber passiert wenn der webservice nach 1 - 2 sekunden nicht fertig ist den das nadelöhr ist immer die DB.
startets du dann wieder eine anfrage und das ganze baut sich auf?
ich kann mir auch nicht vostellen das alle 5 ms in die datenbank geschrieben wird außer du hast ein EchtzeitBS. Windows arbeite garnicht so schnell und eine Socket zur DB aufbauen dauert schon länger.
Aber Grundsätzlcih funktioniert das so wie du es hast. Ich schreibe mit 150 Usern gleichzeitig in die DB und abdere Programme arbeiten da auch noch nebenbei.
Hier kommt es auch auf die DB an. MySQL ist da z.B. nicht mehr geeignet den mit MYISAM wird auf Tabelleneben gesperrt. DH SELECT geht vor INSERT UPDATE.
Ich habe selbst MSSQL und das läuft mit einer DB mit 6 GB ohne Probleme und sehr schnell wobei hier 160 Abfragen/Sek ausgeführt werden.
Sind aber auch schnelle Rechner mit 10 GB MEM und 4x XEON.
Wie du siehst sind diese Überlegungen alle mit einzubeziehen und für einen Anfänger nicht so einfach zu überblicken.
-
Hi, danke für deine Antwort.
Es gibt verschiedene "user" die nachher auf die Daten zugreifen können solln, einmal meine eigene Anwendung, aber dann auch noch fremd Programme, daher auch meine überlegung zum Webservice.ich rufe via timer im 5ms daten über tcp ab, diese Daten werden dann in die Datenbank geschreiben, wie lange Windows die Daten zwischen speichert kann ich dir nicht sagen, aber so soll es zumindest sein.
Aktuell löst ein Timer im 1sek Takt den Abruf des Webservices aus, ohne Rücksichtsnahme ob die vorherige Anfrage bereits fertig ist, dies soll am Ende natürlich nicht mehr so sein.
Als Datenbank verwende ich Firebird bzw. MSSQL Express .
Dh. ich kann davon ausgehen das nicht der Webservice selbst mein System lahmlegt sondern es die SELECT abfragen sind, und diese würden ja immer egal auf welchem wege ich die Daten übertrage stattfinden.