DOAG Datenbank Kolumne: Die Gefahr der Routine

  • Erstellt von Bruno Cirone
  • Datenbank Kolumne, Datenbank

Normalerweise spricht jeder gerne über seine Erfolge, die er mit der Datenbank erzielen konnte.

Es gibt aber auch Situationen, die sehr problematisch sind. Eine solche problematische Situation ist mir vor einiger Zeit passiert. Meine eigene Routine wurde zur Falle.

Bei meinen Tuningmaßnahmen, davon habe ich bestimmt schon im Laufe der Jahre einige Hunderte gemacht, habe ich mir bestimmte selbstauferlegte Regeln angeeignet. Diese Regeln haben sich bis dato über viele Jahre bewährt.

Eine der Regeln lautet, dass ich bestimmte Namenskonventionen einhalte. Bei der Erstellung von Indices gehe ich wie folgt vor: Zuerst den Tabellennamen, danach ein "I" und ab 90 beginnend eine fortlaufende Nummerierung (z.B. Kunden_I90, Kunden_I91). Mit dieser Namenskonvention ist sichergestellt, dass meine Indices nicht mit den bisherigen Indices kollidierten.

Natürlich habe ich es vorher auf einer Testdatenbank getestet. Leider war die Testdatenbank viel zu klein und spiegelte nicht die produktive Datenbank wieder. Daher mussten die Versuche (mit Invisible Indexes) direkt auf der Produktionsdatenbank erfolgen.

Bei den Tuningmaßnahmen werden viele verschiedene Versuche gemacht. Am Ende der Versuchsreihe werden die erstellten Indices wieder gelöscht.

Spätabends habe ich daher alle Indices, die meiner Namenskonvention entsprachen, gelöscht.

Ich habe hierbei leider auch einen Index mit dem Namen "Kunden_I99" gelöscht. Er entsprach meiner Namenskonvention, war aber ein produktiver Index. Am nächsten Tag konnte sich keiner die plötzliche Performance-Verschlechterung erklären. Ich auch nicht!  Ich hatte ja nur "meine" Indices gelöscht.

Ein anderer Administrator kam auf die Idee, die Test- bzw. Staging-Datenbank mit der produktiven Datenbank zu vergleichen. Der Index wurde schnell als fehlend identifiziert. Bis alles wieder wie vorher lief dauerte es ca. 2 Stunden.

Welche Lehren ich daraus gezogen habe:

  1. Meine Namenskonvention habe ich erweitert, um noch eindeutiger zu sein. Jetzt lauten meine Indexnamen z.B. Kunden_BCI90_TEST. Damit ist sichergestellt, dass dies ein Testindex des Users BC ist.
  2. Ich prüfe noch intensiver die vorhandenen Namenskonventionen und protokolliere zusätzlich auch die kleinsten und offensichtlichsten Änderungen.

Ihnen allen wünsche ich, dass Sie nie in eine solche Erfahrung machen müssen. Vielleicht hilft und ermutigt Sie mein kleiner "Problembericht" Ihre eigene Arbeitsweise und Routine kritisch zu überprüfen.

 

Bruno Cirone

DOAG Themenverantwortlicher Sicherheit

---

Bild von Devendra Dhonde auf Pixabay