11.07.2015 Aufrufe

Wendig statt aufwendig - Midrange Magazin

Wendig statt aufwendig - Midrange Magazin

Wendig statt aufwendig - Midrange Magazin

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

TECHNIK & INTEGRATIONführungsplans. Das Endergebniskann links, rechts, oben oder untenangezeigt werden. Probieren Sieaus, welche Darstellungsweise Siebevorzugen.Das vorletzte Icon aktualisiertdie Laufzeitumgebungsinformationen.Es ist allerdings nur verfügbar,wenn Sie die Erklärung derAbfrage während der Ausführung(STRG + W) angefordert haben.Das letzte Icon öffnet den VisualExplain Statistik- und Index-Advisor (Bild 3). Hier finden Sie Indexvorschläge,die sich positiv aufdie Ausführung dieser SQL-Abfrageauswirken könnten. Sie können einzelneIndexvorschläge markierenund sofort erstellen (Bild 4).Ergänzen müssen Sie lediglichden Indexnamen und, falls es sichum die Erstellung eines EncodedVector Index handelt, benennenSie die „Anzahl eindeutiger Werte“.Seien Sie aber vorsichtig mit derErstellung! Der Vorschlag berücksichtigtkeine bestehenden Indizes;er bezieht sich nur auf die soebenausgeführte Abfrage und das aktuelleDatenvolumen. Ob der Indexanschließend benutzt wird, ist nichtgarantiert. Sie können auf diesemWeg sehr schnell viele unnütze Indizeserstellen und Ihr System belasten,ohne Ihre SQL-Abfragen zubeschleunigen.Oberhalb der Toolbar befindensich diverse Menüoptionen: Datei,Ansicht, Aktionen, Optionen undHilfe.Das Menü „Ansicht“ enthältviele Möglichkeiten, die grafischeDarstellung zu verändern und entsprichtin weiten Teilen den Funktionender Toolbar.Carmen Rasche óclick towww.midrange.deDen vollständigen Artikel finden Sie inunserer aktuellen Online-Ausgabe.Auswirkungen auf die SQL-Performance?Datentyp VARCHARÜblicherweise implementiert die DB2 for i5/OS (V6R1)Satzformate mit fester Länge, d. h. jede Zeile hat exakt diegleiche Länge. Immer häufiger sehe ich aber in der letztenZeit Datenbanken mit variabel langen Spalten.Zunächst einmal ist in Einzelfällendagegen nichts einzuwenden. DieGrundidee ist hierbei folgende: Nehmenwir an, in einer Tabelle gibt es eineZeichenspalte namens Text. Die Tabelleenthält 50 Zeilen. Die Spalte Text wirddefiniert als CHAR(500). Die Länge isterforderlich, weil 2 der 50 Zeilen derartiglange Texte beinhalten. Für dieübrigen 48 Zeilen wäre die DefinitionCHAR(50) völlig ausreichend. Die Tabellebelegt in Bezug auf diese Spalte 25 KBSpeicherplatz. Tatsächlich wären aber3.400 Byte ausreichend. Hier lohnt sichdie Definition von VARCHAR-Spalten,denn in diesen Fällen lässt sich Plattenplatzsparen.Was passiert aber, wenn eine Spalteals alphanumerisches Feld mit variablerLänge definiert wird? Der variableTeil des Datensatzes wird in einemseparaten Bereich auf der Festplattegespeichert. Im festen Längenteil desDatensatzes wird lediglich ein Pointerimplementiert, der auf den Overflow-Bereich der Tabelle verweist. Nehmenwir die eingangs geschilderte Situationund definieren die Tabelle HISTVAR, diedie Spalte HITEXT enthält (Bild 1).CREATE TABLE HISTVAR(HITEXT VARCHAR(500),)Jeder Eintrag der Spalte HITEXT landetim Overflow-Bereich und ist nichtzusammenhängend mit den restlichenInformationen abgelegt. Weil die variablenDaten aber im separaten Bereichstehen, erfordert das Lesen dieser Zeileneine zusätzliche I/O-Operation, umdie Daten vom sekundären Speicherplatzzu holen.Falls Sie bereits Tabellen mit variablenDaten haben, können Sie sehrschnell feststellen, wie groß der variableAnteil Ihrer Daten ist. Sie müssensich nur die Dateibeschreibungen ansehen.Öffnen Sie hierfür die Datenbankim iSeries Navigator. Wählen Sie dieentsprechende Tabelle und öffnen Sieim Kontextmenü der Tabelle die Dateibeschreibung(Bild 2).In einigen Datenbanken beschränkensich die VARCHAR-Definitionenaber nicht auf einzelne Spalten. Vielmehrwerden alle Zeichenspalten variabellang definiert. Warum aber Postleitzahlen,Telefonnummern, Kundennamen,ja einfach alle Zeichenfeldervariabel lang definiert werden müssen,habe ich lange Zeit nicht verstanden.Stark variierende Spalteninhalte könnenhierfür nicht der Grund sein. DieBegründung ist in der Programmierungzu suchen: In vielen Applikationen mussdie Länge des gespeicherten Strings ermitteltwerden. Java-Entwickler benötigendie nullterminierten Strings u. a.zum Aufbau ihrer Bildschirmmaskenund so werden halt alle Zeichenfeldervariabel lang definiert ohne Rücksichtauf die Performance der Datenbank.Hierfür wird sogar die ursprünglicheAbsicht „Plattenplatz zu sparen“ adabsurdum geführt. Schauen Sie sichdie beiden Tabellen HIST und HISTVAR36MIDRANGE MAGAZIN · 11/2010

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!