Announcement

Collapse
No announcement yet.

SQL-Server-DB schneller Zugriff

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • SQL-Server-DB schneller Zugriff

    hallo,

    ich habe ein dringendes Problem:
    Ich muss aus einer SQL_Server-Tabelle (27000 Datensätze) ca. 400 Datensätze filtern.
    Ich suche nach der schnellen Variante!
    Meine Versuche Einsatz ADOQuery mit SQL-Statement wie
    SELECT * FROM .... WHERE (Feld=...) OR (Feld=...) ...

    oder

    SELECT * FROM .... WHERE Feld IN (...,...,...)

    bingen sehr lange zum Öffnen der Query. Wie bin ich schneller?
    Kann ich bei der ADOConnection oder ADOQuery was einstellen und tunen?

    Viele Grüße

    Roland

  • #2
    Falls es sich um den MS-SQL-Server handelt hast Du folgende möglichkeiten:

    1, Teste alle Query-Alternativen im SQL Query Analyser. Dort kannst Du dir den Ausführungsplan mit den "Kosten" der Abfrage anzeigen lassen.

    2, Erzeuge einen Index auf das Feld und kontrolliere die Performanceverbesserung ebenfalls im Query Analyser.

    Verwende auf jedenfall in Delphi statt der TAdoQuery-Komponente die TAdoDataset-Komponente und setze (da du ja alle Datensätze benötigst die Curserlocation auf Client). Um das letzte Prozent noch herauszuholen (ich vermute aber eher das die DB das bremsente Glied in der Kette ist) setzte direkt auf die ADO-Komponenetn auf (ohne den ADOExpresss-Umbau) von Delphi

    Comment


    • #3
      Danke für die Tipps! Ich habe noch eine sehr schnelle Variante gefunden: Ich schreibe die Werte nach denen zu filtern ist in eine temporäre Tabelle und nutze ein SQL-Statement wie
      SELECT * FROM ... INNER JOIN ...

      Comment

      Working...
      X