-
fetch first (vor Where)???
Hallo,
ich bin noch ein Anfänger und habe folgende Frage:
Ich habe eine Tabelle die täglich enorm wächst, bis jetzt habe ich diese ganz
nomal abgefragt mit:
Select...
Where...
Order By....
diese Abfrage dauert aber mitlerweile ca. 10-15min, deswegen jetzt die Idee, nur mit den letzen 500 Datensätzen zu
arbeiten (die auch nur für mich interresant sind).
Wie kann man das am besten und vorallem Performen-schonensten lösen??
Danke
svt
-
Hallo!
Du könntest die Sortierung ändern (so dass die letzten Datensätze am Anfang stehen) und anschließend mit
"fetch first 500 rows only" arbeiten.
Select * from ....
Where ...
Order by ...
fetch first 500 rows only
Allerdings würde mich mal interessieren wieviele Milliarden Datensätze denn in dieser Tabelle liegen wenn eine Abfrage 10-15 Minuten dauert.
LG,
Sam
-
Hallo Sam,
habe ich auch schon probiert, bekomme
aber die Fehlermeldung:
"SQL-Status: 42601
Vendorencode: -199
Nachricht: [SQL0199] Schlüsselwort WHERE nicht erwartet. Gültige Token: <ENDE DER ANWEISUNG>. Ursache . . . . : Schlüsselwort WHERE wurde an dieser Stelle nicht erwartet."
Gruß
svt
-
Hallo!
Könntest du eventuell das SQL Statement hier posten?
LG,
Sam
-
Hallo Sam,
(sorry bin noch neu!!)
habe ich auch schon probiert, bekomme
aber die Fehlermeldung:
"SQL-Status: 42601
Vendorencode: -199
Nachricht: [SQL0199] Schlüsselwort WHERE nicht erwartet. Gültige Token: <ENDE DER ANWEISUNG>. Ursache . . . . : Schlüsselwort WHERE wurde an dieser Stelle nicht erwartet."
Gruß
svt
-
Könntest du bitte einmal deine SQL abfrage posten.
Sonst können wird leider nichts mit der Fehlermeldung anfangen.
LG
Tobi
-
Fetch 500 Rows only wird wahrscheinlich auch nicht helfen, sofern ein Zugriffspfad, der anders als die Order By-Anweisung geschlüsselt ist verwendet wird.
Das oberste Ziel des Optimizers ist so schnell wie möglich an die gewünschten Daten zu kommen und da werden die Where-Bedingungen vorrangig geprüft und erst anschließend die Order By-Anweisungen. Die Daten werden also sehr oft in temporären Objekten gespeichert und erst anschließend sortiert.
Wird also zusätzlich ein Fetch For 500 Rows angegeben, läuft zunächst die komplette Abfrage durch und aus dem kompletten Ergebnis werden dann die ersten 500 Sätze ausgegeben.
Die kannst die Abfrage nur dadurch beschleunigen, dass Du die Abfrage analysierst (z.B. mit STRDBG oder Visual Explain) und die optimalen Zugriffswege anlegst.
Birgitta
-
Hallo Birgitta,
kannst du mir beim Umbauen des SQl helfen, da relativ Neuland für mich!!!
Danke svt
-
Hi svt,
nur als Info:
Zugriffspfad = Index
Du musst also Prüfen ob es für diese Tabelle einen Entsprechenden Index gibt der als Key-Felder deine WHERE-Bedingung abbildet.
Interessant wäre auch (wie Sam schon schrieb) um wieviele Sätze es sich hier handelt?
UND wieviele Sätze du als Ergebnis erhälst?
In welcher Umgebung rufst du das Statment auf? RPG? ODBC? STRSQL?
-
 Zitat von andreaspr@aon.at
Hi svt,
nur als Info:
Zugriffspfad = Index
iSeries Navigator
S658680.brkdatv6.phisttp
Du musst also Prüfen ob es für diese Tabelle einen Entsprechenden Index gibt der als Key-Felder deine WHERE-Bedingung abbildet.
Interessant wäre auch (wie Sam schon schrieb) um wieviele Sätze es sich hier handelt?
circa 1 Mil.
UND wieviele Sätze du als Ergebnis erhälst?
im Moment ca. 30000
In welcher Umgebung rufst du das Statment auf? RPG? ODBC? STRSQL?
über ODBC und eine 2 MGBit Standleitung
Ich hoffe das Du damit was anfangen kannst
-
Probier mal
Select...
Into...
blah blah blah
**Edit: heck! I didn't see there was a second page of this thread.
-
Abfrage
Hallo Tobi,
anbei das SQL:
SELECT TPANR1, TPNBHF, TPBENR, TPIDEN, TPKMEN, TPVORT, TPVREG, TPVHOR, TPVVER, TPBMEN
FROM brkdatv6.phisttp
fetch first 500 rows only
WHERE tpkonz='LCV' And TPVART='PAZ' And TPNBHF='PACKSTUBE'
ORDER BY TPANR1 DESC , TPBENR, TPZUNR, TPTIA, TPPALN, TPANRP
Gruß
svt
Similar Threads
-
By AndreasH in forum IBM i Hauptforum
Antworten: 13
Letzter Beitrag: 08-05-15, 13:09
-
By USDAVIS in forum NEWSboard Programmierung
Antworten: 6
Letzter Beitrag: 25-08-09, 11:51
-
By cicero22 in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 14-08-09, 13:00
-
By pedro-zapata in forum NEWSboard Programmierung
Antworten: 6
Letzter Beitrag: 11-09-06, 12:34
-
By linguin in forum IBM i Hauptforum
Antworten: 6
Letzter Beitrag: 04-08-06, 10:38
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks