MySQL Anderer Query-Ansatz?

Horschie

Mitglied
Hallo,

die nachfolgende Query führt eine Bestandskontrolle für jeden Artikel durch.

Der Artikel soll dann ausgewählt werden,
wenn
- in den letzten 7 Tagen Warenausgänge existieren
und
- der aktuelle Bestand < den Ausgängen der letzten 7 Tage ist.

oder: Der aktuelle Bestand ist < 0.


Ergänzend: Der erste Block in der QUery, welcher prüft ob überhaupt Ausgänge existieren, spart etwa
40s. Die aktuelle Laufzeit der Abfrage beträgt direkt auf dem Server ~45s.


Code:
SELECT DISTINCT * FROM daten_artikel WHERE 

(EXISTS 
(SELECT ID FROM bew_lager_protokoll
WHERE ARTIKELNR = daten_artikel.ARTIKELNR AND Ursache = "Warenausgang" AND SUBDATE(NOW(), 7)) 

AND 

((SELECT coalesce(SUM(bew_lager_bestand.Bestand)) AS "Curbestand"
FROM bew_lager_bestand WHERE ARTIKELNR = daten_artikel.ARTIKELNR AND Artikeltyp <> "Gesperrt" AND Bestand > 0) 
< 
(SELECT coalesce(SUM(MengeAlt - MengeNeu)) FROM bew_lager_protokoll 
WHERE Ursache = "Warenausgang" AND bew_lager_protokoll.ARTIKELNR = 
daten_artikel.ARTIKELNR AND Datum > SUBDATE(NOW(), 7))) 

OR 
(EXISTS (SELECT * 
FROM bew_lager_bestand WHERE ARTIKELNR = daten_artikel.ARTIKELNR AND Artikeltyp <> "Gesperrt" AND Bestand < 0)
))

Kann man das mit einer veränderten Query noch deutlich beschleunigen?

Danke!
Christoph
 
Zuletzt bearbeitet:

Horschie

Mitglied
Es sind ungefähr
12000 Artikel
13000 Bestände
550 Warenbewegungen (noch...)

Das so eine Abfrage schon Zeit braucht ist mir durchaus bewusst. Aber ich bin jetzt auch nicht DER Datenbankexperte.
Vlt ist die Sache mit dem Exists ja schon unsinnig...?


Grüße
 
Zuletzt bearbeitet:

Joose

Top Contributor
Einerseits kann die Reihenfolge der Subquerys die Laufzeit verbessern aber auch verschlechtern.

Aber was mir aufgefallen ist du fragst 2x den Lagerbestand ab. Einmal prüfst du gegen > 0 und einmal gegen < 0
Ich würde meinen du könntest dir hier etwas sparen!

Außerdem SELECT * FROM ist unperformanter als SELECT [spezifische Spalten] FROM
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
P MySQL-Verbindung in anderer Klasse nutzen Datenbankprogrammierung 2
F MySQL Nur die Datensätze zurückgeben, in denen ein anderer Preis steht Datenbankprogrammierung 9
A Connection Variable in anderer Klasse verwenden -> statement Datenbankprogrammierung 2
S auf views anderer benutzer zugreifen Datenbankprogrammierung 2
Zrebna PostgreSQL-Query in eine MicrosoftSQL-Query konvertieren - chatGPT hilft nur bedingt. Datenbankprogrammierung 3
L JPA EclipseLink PostgreSQL auslesen mit Query Datenbankprogrammierung 2
T TRIM in Query Datenbankprogrammierung 3
D sql query in methode mit rückgabetyp Datenbankprogrammierung 14
OnDemand Mysql Query Builder Datenbankprogrammierung 1
P Herausfinden wann Query null zurück gibt? Datenbankprogrammierung 1
OnDemand SQL Query Optimierung Datenbankprogrammierung 28
Kirby.exe Verwirrung beim Query Datenbankprogrammierung 4
I Hibernate / JPA - Spaltenname von Query (Select) bekommen Datenbankprogrammierung 6
M Oracle Query umbauen (sind die Querys gleich?) Datenbankprogrammierung 5
B Frage bei einer SQL Query Datenbankprogrammierung 3
C Fehlerhafte SQL Query Datenbankprogrammierung 4
B MySQL Query (Anfängerfrage :D) Datenbankprogrammierung 3
B JPA / HQL Support bei Query - Distanzberechnung Datenbankprogrammierung 0
D JPQL- Query über mehrere Tabellen Datenbankprogrammierung 7
Thallius MySQL Was ist falsch an dem Query? Datenbankprogrammierung 2
Thallius MySQL Wo ist der Fehler in dem Query? Datenbankprogrammierung 2
OnDemand MySQL SQL Query Datenbankprogrammierung 2
X SQLite Erhalte bei Query INSERT INTO eine NullPointerException Datenbankprogrammierung 10
B Leerzeichen nach Umlaut -> Sichtbar erst nach Query! Datenbankprogrammierung 6
S sql query, um bestimten datensatz zu finden Datenbankprogrammierung 33
OnDemand SQL Query Anzahl der Werte Datenbankprogrammierung 8
P Tricky SQL Query Datenbankprogrammierung 3
P SQL Query Problem Datenbankprogrammierung 14
I Nullpointer bei einfacher Daba query Datenbankprogrammierung 12
I Query für Geburtstage Datenbankprogrammierung 6
S MYSQL: "Packet for query is too large" Datenbankprogrammierung 0
S HSQLDB PrepareStatement- Falsche query Datenbankprogrammierung 2
F Oracle The parameter name [...] in the query's selection criteria does not match any parameter name d Datenbankprogrammierung 2
J Fehler bei mySQL Query Datenbankprogrammierung 19
R MySQL berechnete Spalte im selben query weiterverwenden? Datenbankprogrammierung 4
S MySQL Hochkommata in Query Datenbankprogrammierung 7
M Problem beim Erstellen einer Query Datenbankprogrammierung 7
D SQL Update auf eine Query möglich? Datenbankprogrammierung 4
T HQL Query funktioniert nicht? Datenbankprogrammierung 8
M PostgreSQL Hibernate Query Restriction Datenbankprogrammierung 2
N Query für Derby DB mit Enterbrise Bean Datenbankprogrammierung 4
algebraiker Eclipse RCP - no persistent classes found for query class Datenbankprogrammierung 4
M List aus Hibernate Query Datenbankprogrammierung 5
M JPA-Query - nicht das komplette Objekt Datenbankprogrammierung 4
M Problem mit Hibernate und Named Query Datenbankprogrammierung 1
S DB2 Eclipselink Query Datenbankprogrammierung 2
LadyMilka Ergebnistyp HQL-Query Datenbankprogrammierung 3
M Frage zu folgender Query in EJB-QL Datenbankprogrammierung 4
Eldorado MySQL HQL Query Tag von Date Datenbankprogrammierung 6
H DB auslesen (Hibernate, Query, Parameter) Datenbankprogrammierung 8
C Split String für SQl query Datenbankprogrammierung 10
C setSelectedValue in SQL Query übergeben Datenbankprogrammierung 20
D Hibernate: Query verarbeiten Datenbankprogrammierung 11
B Hibernate, einfaches Query Ausgeben Datenbankprogrammierung 4
X Select Query auf Substring Datenbankprogrammierung 2
L Query grafisch erzeugen Datenbankprogrammierung 6
N SQL Query Browser Error Datenbankprogrammierung 6
B Suche Query um genau einen Wert einer def. Gruppe aus einer Tabelle zu erhalten. Datenbankprogrammierung 2
Chtonian Effizientes Query System für Wortnachschlagewerk Datenbankprogrammierung 9
D Hibernate, Criteria Query Datenbankprogrammierung 2
T JPQL Query für eine Tabellenansicht Datenbankprogrammierung 2
G JPQL L*KE / JPA Query Language Datenbankprogrammierung 9
O SQL-Query bringt Fehler Datenbankprogrammierung 4
D kurze Frage zu einem Query Datenbankprogrammierung 6
S Query aus Querys Datenbankprogrammierung 14
P [Hibernate] Criterion-Query in HQL übersetzen Datenbankprogrammierung 10
D Neuer Query wird nicht erkannt Datenbankprogrammierung 10
E Wie koennte die SQL Query aussehen? Datenbankprogrammierung 13
B mysql query ausführen Datenbankprogrammierung 4
N Fehler beim matchen von Strings via Query Datenbankprogrammierung 2
G How to put SQL query result into a file Datenbankprogrammierung 3
B Ein Query mit Mysql erzeugen Datenbankprogrammierung 6
G Hilfe bei Query für Spaltenansicht. Datenbankprogrammierung 20
A Fehler bei query Datenbankprogrammierung 7
G SQL-Query Methode Datenbankprogrammierung 4
M Hilfe bei grundlegendem Ansatz Datenbankprogrammierung 2

Ähnliche Java Themen

Neue Themen


Oben