Datenbank Forum - für Anfänger und Profis

Willkommen im Datenbank Forum von Datenbanken-verstehen.de - Das Datenbank, Data Warehouse & Business Intelligence Forum!

Das Datenbank Forum für Anfänger und Profis ist eine Community zu den Themen Datenbanken, Data Warehouse & Business Intelligence. Nimm teil an der Community von Datenbanken-verstehen.de und tausch dich mit deinen Fragen und Lösungen mit anderen Nutzern aus.

Als registrierter Benutzer genießt Du viele Vorteile, wie

  • den vollen Zugang zu allen Foren und Unterforen
  • Kostenloses Lernmaterial inkl. Lösungen zum Thema Datenbanken
  • Zugriff auf DB-Tutorials, Best Practices und SQL-Snippets

Bevor Du einen Beitrag verfassen möchtest, kannst Du dich einfach kostenlos registrieren.

oder Einloggen mit



Beachte bitte die Forenregeln von Datenbanken-verstehen.de. Wir wünschen Dir viel Spaß im Datenbank Forum! - Dein Datenbanken-verstehen.de-Team

Performance SQL-Abfrage

Alles zur Datenbankentwicklung im Oracle-Umfeld...

Performance SQL-Abfrage

Beitragvon jensh » Do 29. Nov 2018, 15:02

Guten Tag Zusammen

Ich bin neu hier und noch ganz am Anfang von der Lernkurve :)...

Ich stehe vor einen performance Problem bei einer SQL abfrage welche ich dann von als Webservice anbieten möchte.
Mit Indizien konnte ich eine Verbesserung erstellen, jedoch braucht diese abfrage noch 4-6 Sekunden, was im Webbereich einfach zu lang ist.

Die Select abfrage sieht momentan so aus, welche unter Umständen in einer Session mehrfach (mit anderen Meteringcode) abgerufen wird:

select meteringcode, type, timestamp from messdaten15min
where meteringcode = 'CH10179012345000000001800250EM001'
and type= 1
and rownum = 1
order by timestamp desc;

/
Meteringcode Type Timestamp
---------------------------------------------------------------------------------------------
CH1011001234500000000290025000001 1 01.12.18 00:00:00.000000000

Gibt es eine Möglichkeit eine art dynamisch Tabelle/View zu machen aus Oracle selber, welche eine solche liste (die jeweils nur immer mit dem aktuellsten Timestamp) enthält?

Vielen Dank im voraus.

MfG
jensh
jensh
 
Beiträge: 2
Registriert: Do 29. Nov 2018, 12:32

Re: Performance SQL-Abfrage

Beitragvon SQLUnion » Mi 5. Dez 2018, 21:47

Hallo jensh,

wenn Du in den Bereich Performance-Tuning gehen willst, dann sind folgedne Fragen wichtig:

- Wie groß ist die Tabelle (RowCount?)
- Wie breit ist die Tabelle (Anzahl an Spalten)
- Werden die richtigen Datentypen eingesetzt?
- Warum werden im WHERE-Bereich alphanumerische Werte gesucht?

Wenn Du mir diese Fragen beantworten kannst, können wir weiter analysieren.

Gruß,
SQLUnion
SQLUnion
 
Beiträge: 162
Registriert: Fr 1. Nov 2013, 15:54

Re: Performance SQL-Abfrage

Beitragvon jensh » Do 6. Dez 2018, 14:55

Guten Tag

Erstmals vielen Dank für deine Antwort.

- Wie groß ist die Tabelle (RowCount?)
Momentan sind es 82'993'468 Zeilen :? --> wahrscheinlich liegt hier der Hund begraben und es geht einfach nicht schneller und ich muss eine neue Tabelle für explizit diese abfrage erstellen...
select count(*) from messdaten15min
/ 82993468

- Wie breit ist die Tabelle (Anzahl an Spalten)
7 Spalten

-Werden die richtigen Datentypen eingesetzt?
Soweit ich beurteilen kann, ja...
Die Spaltennamen stören mich mehr, die wurden dazumal schlecht gewählt...

- Warum werden im WHERE-Bereich alphanumerische Werte gesucht?
Es wird nach einem String gesucht, da der Messpunkt offiziell gemäß SDAT-Norm Alphanummerisch ist.
Dies ist auch der einzige wert welcher von Seite Webservice bekannt ist, mit dem wird dann der letzte Timestamp und Type abgefragt.

In einer nächsten abfrage werden dann die Messwerte abgefragt (von der gleichen Tabelle). Diese ist dann um einiges performanter.
mfg
Jensh
jensh
 
Beiträge: 2
Registriert: Do 29. Nov 2018, 12:32


Zurück zu Oracle

 


  • Related topics
    Antworten
    Zugriffe
    Letzter Beitrag

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron
  • Jetzt Fan werden
  • Newsletter abonnieren? Hier anmelden!

    Alle Informationen aus dem Portal, Blog und Forum in einem Newsletter!

    E-Mail-Adresse: