MIN oder MAX Bildung per B*Tree Index Hint



Ähnliche Dokumente
Urs Meier Art der Info Technical Info (Februar 2002) Aus unserer Projekterfahrung und Forschung

Professionelle Seminare im Bereich MS-Office

Kosten-Leistungsrechnung Rechenweg Optimales Produktionsprogramm

P&P Software - Adressexport an Outlook 05/29/16 14:44:26

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Stellvertretenden Genehmiger verwalten. Tipps & Tricks

Sonderrundschreiben. Arbeitshilfe zu den Pflichtangaben in Immobilienanzeigen bei alten Energieausweisen

Telefon wählen. Anruf kommt Telefongespräche Telefon

Abfragen: Grundbausteine

Kontakte nach Excel exportieren und korrigieren Outlook

teamsync Kurzanleitung

Kurzanleitung für Verkäufer

Datenbanken Microsoft Access 2010

Kommutationszahlen und Versicherungsbarwerte für Leibrenten 2001/2003

Datenbanksysteme 2 Frühjahr-/Sommersemester Mai 2014

Info-Veranstaltung zur Erstellung von Zertifikaten

Klicksparen. Einrichtung und Nutzung von Klicksparen am Beispiel vom iphone Hamburg,

GSM Scanner Bedienungsanleitung

Zahlenwinkel: Forscherkarte 1. alleine. Zahlenwinkel: Forschertipp 1

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Verbuchung von Zahlungseingängen über das PayPal-Konto

Behörde für Bildung und Sport Abitur 2008 Lehrermaterialien zum Leistungskurs Mathematik

2. Aufgabe (3 Punkte) Errechne anhand der angegebenen Daten den Abschreibungssatz der linearen Abschreibung in Prozent. Erklärung:

SQL Teil 2. SELECT Projektion Selektion Vereinigung, Schnitt, Differenz Verbund Komplexer SELECT-Ausdruck

Anleitung zur Erstellung von Serienbriefen (Word 2003) unter Berücksichtigung von Titeln (wie Dr., Dr. med. usw.)

Access [basics] Gruppierungen in Abfragen. Beispieldatenbank. Abfragen gruppieren. Artikel pro Kategorie zählen

A. Ersetzung einer veralteten Govello-ID ( Absenderadresse )

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Umsatz-Kosten-Treiber-Matrix Woodmark Consulting AG

Webseiten mit fragwürdigen Aufrufen von "spy & track" - Unternehmen

Views in SQL. 2 Anlegen und Verwenden von Views 2

Sie sollen eine Datenbank für Befragungen mittels Online-Fragebögen zu unterschiedlichen Themen erstellen:

Widerrufsbelehrung der Free-Linked GmbH. Stand: Juni 2014

Media Teil III. Begriffe, Definitionen, Übungen

CMS.R. Bedienungsanleitung. Modul Cron. Copyright CMS.R Revision 1

Das Festkomitee hat die Abi-Seite neu konzipiert, die nun auf einem (gemieteten) Share Point Server

Bedienungsanleitung Mikrofilmscanner MS 350

Gussnummern-Lesesystem

Warum Sie jetzt kein Onlinemarketing brauchen! Ab wann ist Onlinemarketing. So finden Sie heraus, wann Ihre Website bereit ist optimiert zu werden

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Wachstum 2. Michael Dröttboom 1 LernWerkstatt-Selm.de

Bruchrechnung Wir teilen gerecht auf

MdtTax Programm. Programm Dokumentation. Datenbank Schnittstelle. Das Hauptmenü. Die Bedienung des Programms geht über das Hauptmenü.

Rechenzentrum der Ruhr-Universität Bochum. Integration von egroupware an der RUB in Outlook 2010 mit Funambol

, und wie zuvor. 2. Einmalanlage mehrjährig mit festen Zinssatz (Kapitalentwicklung): mit Endkapital, Anfangskapital und 1 %

Umzug der abfallwirtschaftlichen Nummern /Kündigung

Das Seminar ist eine Prüfungsleistung für Bachelor und Masterstudierende der Informatik!

Bundesverband Flachglas Großhandel Isolierglasherstellung Veredlung e.v. U g -Werte-Tabellen nach DIN EN 673. Flachglasbranche.

Um die Patientenverwaltung von Sesam zu nutzen, muss man die Patienten natürlich zuerst in die Kartei eintragen.

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

epostfach / Konto registrieren

Grundlagen der höheren Mathematik Einige Hinweise zum Lösen von Gleichungen

Nerreter, Grundlagen der Elektrotechnik Carl Hanser Verlag München. 8 Schaltvorgänge

So wird s gemacht - Nr. 24

Anzeige von eingescannten Rechnungen

Prozentrechnung. Wir können nun eine Formel für die Berechnung des Prozentwertes aufstellen:

Großbeerener Spielplatzpaten

Um unsere Gemeindewebseite für Ihre Zwecke zu nutzen, haben Sie folgende Möglichkeiten:

SQL - Übungen Bearbeitung der Datenbank Personal (1)

1. Einführung Erstellung einer Teillieferung Erstellung einer Teilrechnung 6

Viele Bilder auf der FA-Homepage

2) Geben Sie in der Anmeldemaske Ihren Zugangsnamen und Ihr Passwort ein

Zahlensysteme. von Christian Bartl

Anleitung zum Erstellen eines Freihaltetermins

Registrierung für eine Senioren IPIN Ab 17. Mai 2011 können sich Spieler für eine Senioren IPIN (Lizenz) registrieren.

Serienbrieferstellung in Word mit Kunden-Datenimport aus Excel

Scananleitung für Epson Scan und Photoshop

Menü auf zwei Module verteilt (Joomla 3.4.0)

Laborpraktikum Diffraktion : Versuchsdurchführung und Ergebniserfassung

Serienbrief erstellen

Aktivierung von Makros in den Erfassungshilfen

Seco Online Store! Einkauf per Mausklick!

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Internet online Update (Mozilla Firefox)

07. Kapitel: Abfragen erstellen Geschätzter Zeitaufwand: 45 Minuten

MSXFORUM - Exchange Server 2003 > SMTP Konfiguration von Exchange 2003

COMPUTERIA VOM SERIENBRIEFE UND ETIKETTENDRUCK

Ihre Lizenz ändern. Stand 01/2015

Mit dem sogenannten Seriendruck können Etiketten und Briefe mit einer Adressdatei (z. B. Excel) verknüpft werden.

Geschäfts- und Firmenwert G 20. Entgeltlich erworbener Geschäfts- und Firmenwert

Outlook und Outlook Express

Electronic Systems GmbH & Co. KG

Datenbanken Kapitel 2

Daten sammeln, darstellen, auswerten

ASDI Benchmarking Projekt. Anleitung zum Datenexport

BITel Box. Ihr Anrufbeantworter im BITel-Netz. Service

Informatik 12 Datenbanken SQL-Einführung

Well-Balanced. Performance Tuning

Online Bestellsystem Bedienungsanleitung

FEUERWEHR KAMERADEN LEHRGÄNGE 4 DRUCKEN 5

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Bevor Sie mit dem Wechsel Ihres Sicherheitsmediums beginnen können, sollten Sie die folgenden Punkte beachten oder überprüfen:

Anlage eines neuen Geschäftsjahres in der Office Line

Barcodedatei importieren

Der Kälteanlagenbauer

Simplex-Umformung für Dummies

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu])

I Serverkalender in Thunderbird einrichten

Transkript:

E-Mail: rainer@lambertz-c.de Internet: http://www.lambertz-c.de MIN oder MAX Bildung per B*Tree Index Hint Zugegeben, der Trick Min- oder Maximalwerte per Index Hint zu ermitteln ist nicht neu. Gewöhnlich sind mit diesem Trick Laufzeitverbesserungen zu erzielen, jedoch nicht unbedingt. Aber wann lohnt sich der Einsatz und unter welchen Umständen ist eine Verschlechterung der Laufzeit zu erwarten? Folgende Tabelle liegt vor.. SQL > DESC adressen; Name Null? Type - -------- ---- ANREDE VARCHAR2(10) VORNAME VARCHAR2(25) NAME VARCHAR2(90) STRASSE VARCHAR2(60) NUMBER(5) ORT VARCHAR2(60) TELEFON VARCHAR2(15) VORWAHL NUMBER(10) RUFNUMMER VARCHAR2(30)..mit folgendem Index: SQL > SELECT TABLE_NAME, COLUMN_NAME, COLUMN_POSITION FROM all_ind_columns WHERE index_name = 'ADRESSEN_IDX01'; TABLE_NAME COLUMN_NAME COLUMN_POSITION ---- ----- ADRESSEN 1 ADRESSEN VORWAHL 2 Die Abfrage nach der größten für die Vorwahl 07774 lautet: SQL > SELECT MAX( plz ) FROM adressen WHERE vorwahl = 7774; MAX() real: 3426 MIN- oder MAX- Bildung per Index Seite 1

E-Mail: rainer@lambertz-c.de Internet: http://www.lambertz-c.de 0 SELECT STATEMENT Cost=7 Optimizer=CHOOSE 1 0 SORT (AGGREGATE) 10 db block gets 4405 consistent gets Um die größte zu ermitteln, nutzt Oracle den Index ADRESSEN_IDX01. Auf den ersten Blick nicht schlecht. Die Anzahl CONSISTENT GETS verraten jedoch, daß 4405 Datenblöcke herangezogen wurden, die maximale zu ermitteln. Ursache ist der FAST FULL SCAN des Indizes. Unter dem Aspekt, daß der Index aufsteigend sortiert vorliegt, befindet sich die größte im letzten Eintrag, welcher der WHERE Bedingung entspricht. Es ist also nicht erforderlich den gesamten Index zu lesen. Dies wird erreicht durch folgendes Statement: SQL > SELECT /*+ INDEX_DESC( adressen adressen_idx01 ) */ real: 200 0 SELECT STATEMENT Cost=26 Optimizer=CHOOSE 2 1 INDEX (FULL SCAN DESCENDING) OF 'ADRESSEN_IDX01' 8 recursive calls 0 db block gets 251 consistent gets MIN- oder MAX- Bildung per Index Seite 2

E-Mail: rainer@lambertz-c.de Internet: http://www.lambertz-c.de Mit dem Hint INDEX_DESC wird der Index vom Ende her gelesen. ROWNUM=1 bestimmt, daß der Scanvorgang beendet wird, sobald der erste Eintrag im Index der WHERE Bedingung (VORWAHL=7774) entspricht. An dieser Stelle erfolgt ein FULL SCAN statt eines FAST FULL SCAN und ist ein schlechterer Indexzugriff. Jedoch fällt die Anzahl CONSISTENT GETS mit 251 wesentlich geringer aus und die Laufzeit liegt mit 200 ms auch besser. Nun, welchen Laufzeitgewinn bringt der Einsatz eines entsprechenden Hint für das Ermitteln der kleinsten einer VORWAHL. Zu Beginn wieder der Einsatz der entsprechenden Funktion. SQL > SELECT MIN( plz ) 2 FROM adressen 3 WHERE vorwahl = 7774; MIN() real: 3352 0 SELECT STATEMENT Cost=1053 Optimizer=CHOOSE 1 0 SORT (AGGREGATE) 4 db block gets 4405 consistent gets Zeitlich ist kaum ein Unterschied zum Einsatz der MAX Funktion zu erkennen. Die Anzahl CONSISTENT GETS ist für die MIN und MAX Bildung in beiden Fällen identisch. Ursache ist, daß der Index in beiden Fällen komplett gescannt wurde. Das Select Statement mit entsprechendem Hint lautet nun: SQL > SELECT /*+ INDEX_ASC( adressen adressen_idx01 ) */ MIN- oder MAX- Bildung per Index Seite 3

E-Mail: rainer@lambertz-c.de Internet: http://www.lambertz-c.de real: 4989 0 SELECT STATEMENT Cost=4397 Optimizer=CHOOSE 2 1 INDEX (FULL SCAN) OF 'ADRESSEN_IDX01' 0 db block gets 4170 consistent gets Die Laufzeit hat sich gegenüber der MIN Funktion verschlechtert, obwohl die Anzahl CONSISTENT GETS geringer ausfallen wenn auch nicht wesentlich. Für das Emitteln des Maximalwertes wurden 251 Blöcke benötigt und für den Minimalwert waren 4170 Blöcke erforderlich. SQL > SELECT /*+ INDEX_FFS( adressen adressen_idx01 ) */ real: 3042 0 SELECT STATEMENT Cost=1053 Optimizer=CHOOSE MIN- oder MAX- Bildung per Index Seite 4

E-Mail: rainer@lambertz-c.de Internet: http://www.lambertz-c.de 4 db block gets 4159 consistent gets Da standardmäßig der Index ASC gelesen wird, kann der Minimalwert über den Hint INDEX_FFS erfolgen, weil FAST FULL SCAN einfach schneller das Ergebnis bestimmen kann. Die Summe der CONSISTENT GETS für die Min und Max Bildung per Index Hint, liegt mit 4421 (bzw. 4410 für den FAST FULL SCAN) recht dicht an den 4405 Datenblöcken, die benötigt wurden den gesamten Index zu scannen. Darin liegt die Ursache für die unterschiedlichen Laufzeiten bei der Ermittlung der MIN und MAX Werte per Index. Der Maximalwert lag weit vorne im Index und somit mußte gesamte Rest des Index (von hinten nach vorne) gelesen werden um die minimale zu bestimmen. Beiläufig ist erkennbar, daß ein B*tree Index tatsächlich über eine rückwärtige Verkettung aller Indexeinträge verfügt. MIN- oder MAX- Bildung per Index Seite 5