AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

bessere SQL Abfrage

Ein Thema von LoZe · begonnen am 10. Feb 2021 · letzter Beitrag vom 11. Feb 2021
Antwort Antwort
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.416 Beiträge
 
Delphi XE5 Professional
 
#1

AW: bessere SQL Abfrage

  Alt 11. Feb 2021, 08:33
Die Idee von himitsu mit dem PIVOT finde ich auch nicht so schlecht.

Ist der Primärschlüssel auf [Objekt] und [Attribut] ggf. sogar Clustered ?
Evtl. kann man mit einer StoredProcedure/Tablefunction und einen Cursor da als "Tabellescan" schneller durchgehen und die Datensätze zusammenbauen.

Du kannst auch mal prüfen ob ein columnstore Index etwas für dich ist.

Ansonsten bau Trigger auf Tabelle, welche deine LIVE aktualisiert.
Coding BOTT - Video Tutorials rund um das Programmieren - https://www.youtube.com/@codingbott

Geändert von generic (11. Feb 2021 um 08:37 Uhr)
  Mit Zitat antworten Zitat
LoZe

Registriert seit: 27. Dez 2016
Ort: Ulm
40 Beiträge
 
Delphi 12 Athens
 
#2

AW: bessere SQL Abfrage

  Alt 11. Feb 2021, 09:45
Ja ich werde mir das mal anschauen, danke mal für die infos
Chris
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.549 Beiträge
 
Delphi 12 Athens
 
#3

AW: bessere SQL Abfrage

  Alt 11. Feb 2021, 10:22
Klar, wenn sich das SELECT so weit optimieren lässt, das die Daten schnell zusammengesucht sind, dann wäre es schöner. (vielleicht kann man dann sogar die Kopie/Cache lostwerden und direkt)

* Join statt SubSelect
* mit passenden Indize auf allen wichtigen Spalten
* eventuell vorhandene und optimiertere Fertiglösungen nutzen
* ...



Wir hatten sowas früher als Cache in einem DataSnap-Server.
Eine Querykomponente holt die Daten, wenn fertig wurde das schnell in eine MemoryTable kopiert (bzw. dieses Query mit dem Ausgabequery getauscht) und in der zwischenzeit konnten die Clients multithreaded auf die fertige Kopie zugreifen.

Und inzwischen wurde es auf Materialized-Views umgestellt (Postgres),
also auf vorberechnete Views, wo alle paar Minuten unser Server nur noch den Refresh anstößt.
Ist in etwa sowas wie eine virtuelle Tabelle, welche regelmäßig über einen View bzw. StoredProc gefüllt/aktualisiert wird.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Antwort Antwort

 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:36 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz