Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Oracle 10g Fulltablescan Problem

Frage Entwicklung Datenbanken

Mitglied: H41mSh1C0R

H41mSh1C0R (Level 3) - Jetzt verbinden

30.05.2011 um 10:52 Uhr, 4539 Aufrufe, 14 Kommentare

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
Mitglied: db-wizard
30.05.2011 um 11:13 Uhr
Hallo


Ein Fulltablescan ist prinzipiell weder gut noch schlecht, es kommt auf den Umstand an. Abhängig von den verwendeten Suchkriterien kann ein Fulltabslescan deutlich performanter sein als ein Index Scan.


Gruss, Ueli
Bitte warten ..
Mitglied: H41mSh1C0R
30.05.2011 um 11:20 Uhr
Hallo,

mit verwendeten Suchkriterien meinst du den Select Aufruf selber oder kann man Oracle noch selber Parameter für seine Suchstrategie mitgeben bzw. gibt es Stellschrauben an denen wir drehen können?


VG
Bitte warten ..
Mitglied: db-wizard
30.05.2011 um 11:30 Uhr
- 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
Bitte warten ..
Mitglied: H41mSh1C0R
30.05.2011 um 13:32 Uhr
Index ist vorhanden.

Langsamer Ablauf:

Hier geht er NICHT über den Index.

11bb33f6720196d81500a5b75f470595 - Klicke auf das Bild, um es zu vergrößern


Schneller Ablauf:

Hier geht er über den Index so wie er soll.

1049f7e9aa81a4eaac9a3208860b245a - Klicke auf das Bild, um es zu vergrößern

vg

EDIT:

Käme man hier mit der Benutzung von HINTs weiter?
Bitte warten ..
Mitglied: db-wizard
30.05.2011 um 14:55 Uhr
Kannst du mal die beiden SQL posten ? Einmal "schnell", einmal langsam" ?


Danke und Gruss
Bitte warten ..
Mitglied: H41mSh1C0R
30.05.2011 um 15:01 Uhr
01.
SELECT CASE WHEN substr(xd_az,1,2) = 'SR' THEN to_char(sysdate,'YYYY') ELSE to_char(to_date(substr(xd_az,1,2),'RRRR'),'YYYY') END, 1,  
02.
to_char(xd_eingang,'yyyymmdd'), day(vs_gebdat), month(vs_gebdat), year(vs_gebdat), '',  
03.
xd_dok_typ, xd_az, vs_udat, xd_personal_unfall, '', vs_gebdat,  
04.
CASE WHEN vs_abgabe IN (' ','997','998') THEN '' ELSE  
05.
CASE WHEN xd_sammelrechnung = '0' AND substr(vs_mglnr,2,4) = '9999'  
06.
THEN vs_abgabe ELSE '' END END, xd_ident,  
07.
CASE WHEN xd_archiv_dok_id IS NULL THEN 0 ELSE xd_archiv_dok_id END,  
08.
CASE WHEN xd_archiv_vorgang_id IS NULL THEN 0 ELSE xd_archiv_vorgang_id END,  
09.
xd_dok_typ, xd_verfahren, xd_eingang, xd_post_eingang, xd_dok_name, vs_name,  
10.
vs_vname, vs_hmkm, vs_bstand, vs_mglnr, vs_betr, vs_uart, vs_akz,  
11.
CASE WHEN vs_abgabe IN (' ','997') THEN '' ELSE vs_abgabe END,  
12.
pwf_ident, pwf_aktion, pwf_aktion_teil, pwf_datum_ende, pwf_datum_beginn, pwf_user_eingang,  
13.
xd_ablage_datum, xd_sammelrechnung, '', ''  
14.
from   xml_dokumente, verl_stamm, prog_work_flow, work_flow_aktion, term_zust  
15.
 
16.
where xd_az = vs_az AND tz_zust = 'xxxxxxxxxxx' 
17.
  
18.
AND (tz_sachgeb = 10 AND tz_tag2 = 0 AND tz_tag1 = day(vs_gebdat)  
19.
AND tz_monat1v <= month(vs_gebdat) AND tz_monat1b >= month(vs_gebdat)  
20.
OR tz_sachgeb = 9 AND tz_tag2 > 0 AND tz_tag1 <= day(vs_gebdat)  
21.
AND tz_tag2 >= day(vs_gebdat) AND tz_monat1v <= month(vs_gebdat)  
22.
AND tz_monat2b >= month(vs_gebdat))  
23.
AND xd_ident = pwf_vorgang_ident AND xd_verfahren = pwf_verfahren AND pwf_aktion = wa_ident  
24.
AND wa_prog_modul IS NOT NULL AND wa_prog_modul = 'prog_erf'  
25.
AND xd_ident NOT IN (SELECT dz_ident FROM dok_zust WHERE (dz_sachgeb = 10 OR dz_sachgeb = 10))  
26.
AND xd_az IS NOT NULL AND (pwf_aktion_teil IS NULL OR pwf_aktion_teil = 2)  
27.
AND (vs_abgabe IS NULL OR vs_abgabe = ' ' OR vs_abgabe <> '999' )  
28.
AND (pwf_datum_ende IS NULL OR to_char(pwf_datum_ende,'dd.mm.yyyy') = '30.05.2011')  
29.
AND xd_az NOT IN (SELECT vm_az FROM verl_sonder)
Beide Selects unterscheiden sich nur im Nutzernamen der in der mitte statt 'xxxxxxx' steht.

vg
Bitte warten ..
Mitglied: db-wizard
30.05.2011 um 15:03 Uhr
Wieviele Datensätze geben die beiden Varianten jeweils zurück ?
Bitte warten ..
Mitglied: H41mSh1C0R
30.05.2011 um 15:07 Uhr
Da wo es schnell geht 287.

Bei dem wo es "lange" (durchaus bis zu 30 Minuten) dauert ca. 150 Datensätze mehr.
Bitte warten ..
Mitglied: db-wizard
30.05.2011 um 15:11 Uhr
Das dürfte kein Problem sein. Ich glaube, du solltest einen Trace machen und via TKPROF mal anschauen, was genau gemacht wird, also mit ALTER SESSION SET SQL_TRACE = TRUE; und dann das Statement laufenlassen, am besten direkt im SQL PLUS, Du weisst wie das funktioniert ?
Bitte warten ..
Mitglied: H41mSh1C0R
30.05.2011 um 15:16 Uhr
^^ Sry leider weiß ich noch nicht wie das geht. Aber ich kann ja nur dazulernen. Aus dem SQL Developer heraus kann ich das nicht anstoßen und überprüfen?
Bitte warten ..
Mitglied: db-wizard
30.05.2011 um 16:04 Uhr
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
Bitte warten ..
Mitglied: H41mSh1C0R
30.05.2011 um 16:51 Uhr
Danke, ich glaube ich sollte erstmal die SQL Developer Version updaten =). Hocke hier auf dem 1.0.0.14er Stand.

Mein Kollege hat zwar das Problem bereits gelöst, durch einen Schalter bei dem Oracle die Reihenfolge wie er durch die Tabellen geht nicht selber verändern darf und schon geht das fix.

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.

Ich werde das mit dem Tracen dennoch ausprobieren, kann nicht schaden.

Viele Grüße

EDIT:

Die Reihenfolge scheint das Problem nur verlagert zu haben. Gelöst wurde es jetzt durch ein Analyse Table auf die Term.Zust. Somit wird das Tracen auch nichts mehr bringen, da es jetzt nun wieder rennt.
Bitte warten ..
Mitglied: db-wizard
30.05.2011 um 18:51 Uhr
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
Bitte warten ..
Mitglied: H41mSh1C0R
30.05.2011 um 19:03 Uhr
Die Statistiken werden per Job erstellt, wir haben das jetzt nur manuell für diese eine Tabelle angestoßen.

Danke für den Tipp mit dem Partitionieren das werden wir ausprobieren.

vg
Bitte warten ..
Ähnliche Inhalte
Backup
Veeam 7.0 Sicherung VM Ware Maschine mit Oracle Datenbank 10g
Frage von novregenBackup13 Kommentare

Hallo, hat jemand praktische Erfahrungen mit der Sicherung einer VM (ESX vCenter 5) auf der eine Oracle Datenbank 10g ...

Webentwicklung
Problem mit IIS 7 und Oracle DB Anbindung
gelöst Frage von Leo-leWebentwicklung9 Kommentare

Hallo zusammen, ich versuche gerade einen W2K3 Webserver mal auf einen noch vorhandenen W2K8 R2 Server zu verschieben. Insgesamt ...

Datenbanken
Oracle Procedure Aufruf im Trigger
gelöst Frage von BadFsaadKlDatenbanken3 Kommentare

Moin zusammen, ich habe ein kleines Problem, einen Datenbank Trigger zum laufen zu bekommen, und hoffe Ihr könnt mir ...

Virtualisierung
Allgemeines zu Oracle VirtualBox
gelöst Frage von tschroederVirtualisierung8 Kommentare

Hallo zusammen, ich hätte zwei Fragen zu "Oracle VirtualBox", auf die ich bisher keine eindeutige Antwort habe: - Wie ...

Neue Wissensbeiträge
Windows 10

Windows 10 Fall Creators Update - Neue Funktion Hyper-V Standardswitch kann ggf. Fehler bei Proxy Configs verursachen

Erfahrungsbericht von rzlbrnft vor 1 StundeWindows 101 Kommentar

Hallo Kollegen, Da wir die Gefahr lieben, haben wir bei einigen Usern nun mittlerweile das Creators Update drauf. Einige ...

Sicherheit

TLS-Zertifikat und privater Schlüssel von Microsofts Dynamics 365 geleakt

Information von Penny.Cilin vor 3 StundenSicherheit

Microsoft hat versehentlich das TLS-Zertifikat inklusive dem privaten Schlüssel seiner Business-Anwendung Dynamics 365 geleakt. TLS-Zertifikat und privater Schlüssel von ...

Viren und Trojaner

Deaktivierter Keylogger in HP Notebooks entdeckt

Information von bitcoin vor 1 TagViren und Trojaner2 Kommentare

Ein Grund mehr warum man Vorinstallationen der Hersteller immer blank bügeln sollte Der deaktivierte Keylogger findet sich im vorinstallierten ...

Router & Routing

Lets Encrypt kommt auf die FritzBox

Information von bitcoin vor 1 TagRouter & Routing

In der neuesten Labor-Version der FB7490 integriert AVM unter anderem einen Let's Encrypt Client für Zugriffe auf das Webinterface ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Firefox Profieles im Roaming
gelöst Frage von Hendrik2586Netzwerkmanagement17 Kommentare

Hallo liebe Leute. :) Ich hab da ein kleines Problem, welches anscheinend nicht unbekannt ist. Wir nutzen hier in ...

LAN, WAN, Wireless
Brainstorming, einfachste Option 1 getrenntes LAN (mit WAN zugang)
Frage von 132954LAN, WAN, Wireless13 Kommentare

Hi, folgendes: Wir bekommen eine Glasfaser Leitung, Und das sollte Optional so aussehen: Ein Modem/Router für das WAN, ein ...

Batch & Shell
Trusted Sites für alle User auf dem PC einpflegen
Frage von xXTaKuZaXxBatch & Shell12 Kommentare

Aufgabestellung: Es sollen auf 1 PC (bzw. mehreren PCs) vertrauenswürdige Sites per Powershell eingetragen werden, die für alle User ...

Netzwerkgrundlagen
Hi eine blöde frage. xD
Frage von 132954Netzwerkgrundlagen12 Kommentare

Also: Habe 2012 r2 essentials neuinstalliert, allerdings installiert diese version ja gleich diesen gangen AD kram mit, den hab ...