Jump to content

Maggi_MT

Members
  • Gesamte Inhalte

    2
  • Registriert seit

  • Letzter Besuch

Alle erstellten Inhalte von Maggi_MT

  1. Danke für dein Feedback Zahni. Das Thema Isolation Mode sagt mir leider noch nichts, muss ich mich mal mit beschäftigen. Ich habe mir den Aktivitätsmonitor während des Scrollens angeschaut und konnte kein weiteres Query entdecken was ausgeführt wird. Auch wenn gar nicht gescrollt wird, ist weiterhin nur das eine Query mit Status "Suspended" zu sehen. Ich könnte mir vorstellen, dass hier tatsächlich das Query noch offen bleibt, wenn nur 50 Datensätze abgerufen werden anstatt die kompletten 75. Ist es denn beim Arbeiten mit dem Ms SQL Server Standard immer alle Datensätze abzurufen? Ich kenne es nur vom ADS und dort wird nie ein FetchAll ausgeführt...
  2. Hallo Zusammen, ich bin noch sehr unerfahren was den Ms SQL Server angeht und hoffe ihr könnt mir helfen: Wir nutzen normalerweise den Advantage Database Server und wollen unsere Anwendung jetzt ebenfalls auf einem Ms SQL Server laufen lassen. Wir nutzen Delphi als Entwicklungs-Tool und wollen FireDAC nutzen, um sowohl den Advantage Database Server als auch den Ms SQL Server anzusteuern. Dazu haben wir ein bestehendes kleineres Projekt angepasst und können soweit auch mit FireDAC und dem Ms SQL Server arbeiten. Es kommt jedoch immer wieder zu dem Problem, dass ein User sich selbst blockiert. Dies ist jedoch nicht immer reproduzierbar, sondern tritt wohl nur in besonderen Situationen auf, die ich noch nicht weiter einschränken konnte. Die Tabellen-Struktur ist dabei folgende: Es gibt eine Tabelle "ToDo" in der verschiedene Aufgaben enthalten sind. Diese Aufgaben können verschiedenen Mitarbeitern zugeordnet werden, so dass ein Mitarbeiter z.B. 75 Aufgaben hat. Zu jeder Aufgabe können Kommentare geschrieben werden, Tabelle "ToDoNotes". Das Programm läuft soweit erstmal problemlos, nur im Laufe des Tages kann es dann dazu kommen, dass ein Mitarbeiter zu einem ToDo ein Kommentar schreiben möchte und sobald er diesen speichert friert das Programm ein und im Ms SQL Aktivitätsmonitor sieht man, dass das SQL zum Speichern durch ein anderes SQL des gleichen Mitarbeiters blockiert wird. Hier hilft es dann nur noch den Mitarbeiter vom Server zu kicken und er muss seinen Kommentar erneut schreiben. Dies klappt dann ohne Probleme. In meinen Beobachtungen im Laufe der Zeit konnte ich feststellen, dass die Probleme vermehrt auftreten, wenn der Benutzer eine Übersicht über seine ToDos offen hat. Diese Übersicht führt ein Query aus "SELECT * FROM ToDo WHERE Mitarbeiter = xy". Es werden somit ggf. 75 Datensätze für den Mitarbeiter angezeigt. In dem Zusammenhang ist mir dann aufgefallen, dass Mitarbeiter mit mehr als 50 Datensätzen in ihrer Übersicht, im Aktivitätsmonitor ein Query stehen hatten, dass den Status "Suspended" gezeigt hat. Kann mir jemand mit seinen Worten erklären was genau dieses Suspended bedeutet bzw. ob vermieden werden sollte solche Query zu haben? Ich bin aufgrund des Suspended nämlich auf die Option "FetchMode" für FireDac gestoßen und bei FireDAC ist es so, dass im Standard immer nur 50 Datensätze abgerufen werden. Wähle ich hier 500 und öffne die Übersicht für den Mitarbeiter mit 75 Datensätzen, so bekomme ich auch kein Query mit Status "Suspended" mehr. Da wir aber zum Teil auch andere Query haben, haben wir nun die Option "FetchAll" als "FetchMode" gewählt. Ist das eine gängige Lösung für Ms SQL? Ist es erforderlich, dass immer alle Datensätze zum Client übertragen werden? Vielen Dank schonmal für jegliche Art von Feedback :D Gruß Markus
×
×
  • Neu erstellen...