Kategorie: T-SQL

Login Failed – IP Adressen Zugriff auf SQL Server verweigern

Normalerweise würde man den Weg umgekehrt gehen: nur bestimmte Adresse bekommen Zugriff auf den SQL Port. Allerdings bin ich häufiger unterwegs und beziehe per DHPC verschiedenste Adressen. Daher steht der SQL offen im Netz und wird gerne Ziel verschiedenster Angriffe. Das Problem ist für mich zunächt der Versuch oder die Möglichkeit Accounts zu knacken, sondern […]

Optimieren der tempdb

Eine Systemdatenbank, die es in sich hat und trotzdem oft genug ein Schattendasein führt.  Immerhin steckt hier ein sehr großes Potential für Performance Tuning. Wenn mancher wüßte, was alles über die tempdb im Hintergrund verarbeitet wird oder werden kann, hätte man sicher schon sehr früh die Performance Schraube anziehen können.  Grob ausgedrückt wird die tempdb […]

SQL Server: Index Leitfaden – Verwaltung der Indizes durch Rebuild oder Reorganize

Indizes, Beschleuniger oder Bremse Nr 1, bedürfen einer Wartung. Man stelle sich mal das Münchener Telefonbuch vor, wenn alle neuen Telefonnummern nur immer hinten angehängt werden würden. Ähnlicher Fall bei den Indizes… Jede Änderung der Daten führt zu dazu, dass die entsprechenden Indizes ebenfalls mitgepflegt werden müssen. Im Gegensatz zu Spalten werden bei Indizes die […]

Seltsames TSQL – Geht nicht geht doch

Vor kurzem bin ich über folgendes seltsames Phänomen gestolpert: Die folgende Abfrage ist eigentlich nichts besonderes. Allerdings existiert die Spalte "country” nur in der Tabelle Customers, aber nicht in der Tabelle orders. select * from Customers where Country in (select country from orders) Normalerweise würde man annehmen, das der Optimierer erkennt, dass die Unterabfrage nicht […]

SQL Server : Index Leitfaden Teil 2 – Vergabe von Indizes

Im Teil 1 Index Leitfaden Teil 1- Index für Rookies haben wir die den gruppierten und nicht gruppierten Index vorgestellt. Nun wollen wir mal sehen, auf was es bei der Vergabe der Indizes ankommt. Wir wissen bereits, dass Nicht gruppierte Indizes gut für Abfragen bei relativ geringen Ergebnismengen ist. Der Gruppierte Index dagegen spielt seine […]

SQL Server : Index Leitfaden Teil 1 – Indizes für Rookies

Indizes sind Top Beschleuniger für T-SQL! Ja und Nein. Tatsache ist, dass Indizes Abfragen enorm, wir sprechen von 30 Sekunden auf 1 Sekunde – reduziert werden können. Tatsache ist allerdings auch, dass Indizes “schmerzen”, wenn es um Inserts, Update und Delete geht. Indizes müssen daher mit Bedacht und Sorgfalt gewählt werden. Allerdings welche Kriterien sollte […]

SQL Server 2012 – Sequences

  Eine Neuerung, aber keine neue Erfindung, sind Sequences. Bei Oracle oder DB2 schon lang zu haben, werden diese erst in Denali SQL 11 eingeführt. Sequenzen stellen eine Möglichkeit dar Zahlenreihen unabhängig (auch ausserhalb von Tabellen) transaktional zu erzeugen. Folgendes Beispiel soll dies erläutern:   Anlegen der Sequence –anlegen der Sequence create sequence KD_SQLgo Die […]

Restore einer Datenbank – Transaktionsprotokoll defekt oder weg

Der folgende Fall ist vielfach im Internet zu finden: “Huch.. das Logfile ist aber groß. Die DB ist 500 MB und das Logfile 50 GB groß. Komisch . Am besten ich lösch das mal….DB offline und weg damit..” Ja.. nicht nur das passiert.. auch ein Defekt des Transaktionsprotokolls könnte aufgetreten sein. Sofern in beiden Fällen […]

SQL Server: Datenbank beim Wiederherstellen als SUPECT gekennzeichnet (Fehlerverdächtig)

Der Schreck ist groß: Der SQL wird neugestartet und eine Datenbank wird als fehlerverdächtig gekennzeichnet. Der Schreck wird noch größer, wenn keine Sicherung vorhanden ist. Genau dieses wäre optimal gewesen, um das Problem zu beheben, aber was wenn nicht..: Folgende Statements auf der master Datenabnk können hier weiterhelfen: — Status der zurücksetzen EXEC sp_resetstatus ‚datenbankname‘; […]

Indizes warten–Neu erstellen oder reorganisieren

Indizes, Beschleuniger oder Bremse Nr 1, bedürfen einer Wartung. Man stelle sich mal das Münchener Telefonbuch vor, wenn alle neuen Telefonnummern nur immer hinten angehängt werden würden. Ähnlicher Fall bei den Indizes… Jede Änderung der Daten führt zu dazu, daß die entprechenden Indizes ebenfalls mitgepflegt werden müssen. Im Gegensatz zu Spalten werden bei Indizes die […]

T-SQL: Spalten zu Zeilen

  Folgendes kleines Problem musste ich vor kurzem lösen: Die Werte eine Spalte sollten als kommaseparierte Liste ausgegeben werden. Bspw:   Tabelle Kunden: ID Nachname —————— 1 Maier 2 Schmitt 3 Gates 4 Job Aus dieser Tabelle sollte folgendes generiert werden: Maier, Schmitt, Gates, Job Auf den ersten Blick erscheint es kompliziert, aber die Lösung ist […]

SQL Server Monitoring: Messen der Leistung mit Systemmonitor – wichtige Leistungsindikatoren

  Systemmonitor Jede Instanz eines SQL Servers installiert ihre persönllichen Leistungsobjekte bzw. Leistungsindikatoren. Der unter Windows verfügbare Systemmonitor (Perfmon) stellt diese und auch OS eigene Indikatoren zur Verfügung. Der Systemmonitor stellt dadurch  – als Werkzeug der ersten Wahl – die Real time Auslastung der Maschine dar. Natürlich könnte man den Taskmanager ebenso verwenden, aber hier […]

Demodatenbanken

Für diverse test benötige ich dann und wann ein paar Datenbanken: Hier meine wichtigsten:   Nordwind DB als Skript-Datei:Nordwind DB  Adventureworks 2008: (ist eigtl ein Skript, das viele .csv Dateien importiert. Das Skript muss noch an die jeweiligen Pfade angepaßt werden. AdventureWorks2008 DB.   Für einige Test zur Performance Optimierung hat vor einiger Zeit das […]

Datenbanken als Skript exportieren

Ein sehr nützliches Tool ist der Microsoft SQL Server Database Publishing Wizard 1.1. Mit Hilfe dieses kleinen Tools ist es möglich komplette Datenbanken als Skript zu exportieren. Im Gegensatz zu “CREATE AS” in SQL Server Management Studio werden hiermit auch die Inhalte der Tabellen, sowie die Schemas generiert. Der Download ist zu finden unter: SQL […]