Thema: Array in SQL

Einzelnen Beitrag anzeigen

MichaelT

Registriert seit: 14. Sep 2005
Ort: 4020 Linz
532 Beiträge
 
Delphi 10.3 Rio
 
#11

AW: Array in SQL

  Alt 26. Jul 2016, 11:01
Ich kenne mich am SQL Server nicht aus und auch dein Programm nicht. Somit kann ich nur raten.

Bitte nicht prügeln wenn die Idee Unsinn ist. Rechnest du die Statistiken und machst du Zugriffsoptimierung über Statistiken. So ich mich ganz düster erinnere war da mal was. Welche Ausführungspläne bei welchem Cursor wie gezogen werden und wie man die traced weiß ich ehrlich nichts mehr.

Meine Grundsätzliche Überlegung wäre. 15 Sekunden auf 10 Minuten sind Faktor 40. Das wären so im Mittel 2 Tabellen bei denen die Hälfte der Datensätze durchkämmt wird pro Zugriff. Hat der Cursor zu wenig Einträge oder sind eventuell Statistiken nicht aktuell oder so ähnlich. Scrollable Cursor ist gut für viele Rows, wenn man nachschlagen muss.

Kennst du die Anzahl der Zeilen in den Nachschlagetabellen und hilft es wenn man diese fixiert ala static. Das Nachschlagen geht auf die tempdb & KEYSET (musste kurz nachschauen) oder STATIC.

Die Frage die sich mir stellt, ob sich die gewonnene Flexibilität durch SCROLL tatsächlich im Mittel auszahlt und ob man nicht auf ReadOnly und ForwardOnly nimmt. Ob diese Variante schneller ist kann ich so nicht beurteilen. Zumal diese Cursor keine echten in memory buffer sind scheint mir die variante einen Stand aus der tempdb zu lesen noch eher die 'beste' Annährung oder eben ein KEYSET usw..

Stellt sich die Frage ob du die tempdb nicht auf ein RAMDRIVE kannst legen. Aber das ist schon etwas gewagt. Die tempdb wird an sich von alle benutzt. Wäre allein interessant zu sehen, ob es einen Unterschied macht zur tempdb auf Platte. Vermute die Datenbankseiten sollten sowieso gepuffert sein.


Geändert von MichaelT (26. Jul 2016 um 11:35 Uhr)
  Mit Zitat antworten Zitat