Oracle 10g Fulltablescan Problem
Hi@All,
die Oracle DB sorgt ja selber für die Suchstrategien. Wir haben nun eine Stammdatentabelle die die mio Einträge bereits überschritten hat. Wird nun über diese Tabelle ein fulltablescan gemacht dauert das natürlich seine Zeit.
Jetzt haben wir einen Bereich im Haus wo 5 Leute mit Hauseigener Anwendung X arbeiten und bei 3 Leuten geht es fix und bei 2 macht die Oracle DB über besagte Stammdatentabelle einen fulltablescan.
Alle machen das gleiche mit der Anwendung.
Wir haben bis jetzt keinen Kniff gefunden wie und ob man diese Suchstrategien beeinflussen kann.
Wer stand bereits vor solch einem Fall und hätte einen Tipp parat?
VG
die Oracle DB sorgt ja selber für die Suchstrategien. Wir haben nun eine Stammdatentabelle die die mio Einträge bereits überschritten hat. Wird nun über diese Tabelle ein fulltablescan gemacht dauert das natürlich seine Zeit.
Jetzt haben wir einen Bereich im Haus wo 5 Leute mit Hauseigener Anwendung X arbeiten und bei 3 Leuten geht es fix und bei 2 macht die Oracle DB über besagte Stammdatentabelle einen fulltablescan.
Alle machen das gleiche mit der Anwendung.
Wir haben bis jetzt keinen Kniff gefunden wie und ob man diese Suchstrategien beeinflussen kann.
Wer stand bereits vor solch einem Fall und hätte einen Tipp parat?
VG
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 167164
Url: https://administrator.de/contentid/167164
Ausgedruckt am: 23.11.2024 um 05:11 Uhr
14 Kommentare
Neuester Kommentar
- Ob Oracle eine FTS oder Index Scan verwendet, ist unter anderem abhängig von der Anzahl der zurückgelieferten Datensätzte in Relation zur Gesamtmenge. Es gibt dabei einige Stellschrauben, welche das Verhalten beinflussen können, ausserdem natürlich das Vorhandensein von passenden Indizies und aktuellen Statistiken.
- Ein guter Startpunkt zur Analyse solcher Probleme wäre ein Tracen der Session's, welche die Benutzer ausführen. In den dabei entstehenden TRACE Files, siehst du exakt, was die DB bei den ein einzelnen Statements gemacht hat.
Gruss
- Ein guter Startpunkt zur Analyse solcher Probleme wäre ein Tracen der Session's, welche die Benutzer ausführen. In den dabei entstehenden TRACE Files, siehst du exakt, was die DB bei den ein einzelnen Statements gemacht hat.
Gruss
Ja, es geht auch pe SQL Developer, jedenfalls beinahe.
Ich gehe von der aktuellen Version 3.x aus
1. Connecte auf die Instanz und mache ein SQL Worksheet auf
2. Paste dort dein gewünschtes SQL hinein
3. VOR deinem SQL fügst du ALTER SESSION SET SQL_TRACE = TRUE
/
ein (mit dem Slash)
4. NACH deinem SQL : ALTER SESSION SET SQL_TRACE = FALSE
/
Lasse alle 3 Statements laufen (F5)
5. Das Tracefile findest du nun auf dem Server, in der Regel unter folgendem Pfad (Linux, bei Windows ist es ähnlich): /opt/oracle/admin/THLTST10/udump/
(THLTST10 ist meine SID)
Es sollte etwa so heissen : SID_ora_10007.trc, wobei SID dein Oacle SID ist...schaue einfach auf das aktuelle Filedatum,es sollte eh nicht allzuviel im Verzeichnis haben
6 .Kopiere dir dieses File auf deinen PC
7. Per Drag und Drop kannst du es nun direkt in den SQLDev ziehen
Hoffe das hilft
Ich gehe von der aktuellen Version 3.x aus
1. Connecte auf die Instanz und mache ein SQL Worksheet auf
2. Paste dort dein gewünschtes SQL hinein
3. VOR deinem SQL fügst du ALTER SESSION SET SQL_TRACE = TRUE
/
ein (mit dem Slash)
4. NACH deinem SQL : ALTER SESSION SET SQL_TRACE = FALSE
/
Lasse alle 3 Statements laufen (F5)
5. Das Tracefile findest du nun auf dem Server, in der Regel unter folgendem Pfad (Linux, bei Windows ist es ähnlich): /opt/oracle/admin/THLTST10/udump/
(THLTST10 ist meine SID)
Es sollte etwa so heissen : SID_ora_10007.trc, wobei SID dein Oacle SID ist...schaue einfach auf das aktuelle Filedatum,es sollte eh nicht allzuviel im Verzeichnis haben
6 .Kopiere dir dieses File auf deinen PC
7. Per Drag und Drop kannst du es nun direkt in den SQLDev ziehen
Hoffe das hilft
Na ja, die Statistiken müssen schon da und auch aktuell sein, hatte ich weiter oben ja auch geschrieben. Im übrigen solltest du das ANALYZE TABLE nicht mehr verwenden, siehe dazu dazu folgenden Link:
http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:434 ...
Für folgendes Problem :
<<<<
Das Problem ist das er bei den letzten Tabellen noch fts macht und deren Inhalt nimmt täglich rasant zu also früher oder später gibts an der Stelle verbesserungsbedarf.
>>>>>
In solch einem Fall würde sich eventuell eine Partitionierung der Tabelle aufdrängen und zwar nach dem Key, nach dem in deinem Fall gesucht wird
http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:434 ...
Für folgendes Problem :
<<<<
Das Problem ist das er bei den letzten Tabellen noch fts macht und deren Inhalt nimmt täglich rasant zu also früher oder später gibts an der Stelle verbesserungsbedarf.
>>>>>
In solch einem Fall würde sich eventuell eine Partitionierung der Tabelle aufdrängen und zwar nach dem Key, nach dem in deinem Fall gesucht wird