SQL Server 2008 – Neuigkeiten

SQL Server 2008 – Neuigkeiten Ein Überblick über die neuen Möglichkeiten der Bereiche – Administration – Performance-Analyse und -Optimierung – Entwicklungsumgebung – T-SQL und neue Datentypen – Reporting Services April 2008 – SQL Server Entwickler-Konferenz (SEK) – Nürnberg Download

SQL-Statement zur Ausführung an allen Tabellen

Frage: Gibt es eine Möglichkeit mit einer einzigen SQL-Anweisung Rechte an allen Tabellen zu vergeben? Lösung: Mittels der undokumentierte Gespeicherten Prozedur master.dbo.sp_msforeachtable kann eine SQL-Anweisung an jeder Tabelle der aktiven Datenbank ausgeführt werden. Beispiel: exec sp_msforeachtable ‚Grant Select, Update, Insert, Delete On ? To public‘ /* übernommen aus der Original sqlfaq.de */

Vergleiche mit LIKE ‚%wert%‘

Frage: Ein SQL-Statement mit Like ‚%wert%‘ führt zu einem TableScan, obwohl die Spalte indiziert ist. Lösung: Durch die Verwendung des Platzhalterzeichens % am Beginn des Suchausdrucks wird die Nutzung des Index verhindert und dadurch ein TableScan ausgelöst. /* übernommen aus der Original sqlfaq.de */

Dynamisches SQL optimieren

Frage: Wie kann dynamisches SQL optimiert werden? Lösung: Dynamisches SQL sollte grundsätzlich vermieden werden, da es vom Abfrageoptimierer nicht erkannt und somit bei jeder Ausführung erneut kompiliert wird. Ergo geht der Vorteil des gespeicherten Ausführungsplans verloren. Theoretisch ist die Vermeidung von dynamischem SQL leicht gesagt; praktisch aber manchmal notwendig und unumgänglich. Wenn es denn gar … Weiterlesen

Vergleich mit Ausdrücken vermeiden

Frage: Ein Vergleich mit Where preis + 1 > 2 führt zu einem TableScan, obwohl die Spalte indiziert ist. Lösung: Ein berechneter Ausdruck sollte innerhalb eines Vergleichs so formuliert werden, dass er nur auf einer Seite der Bedingung steht. Nur so kann der Index genutzt werden. In dem angeführten Beispiel würde Where preis > 1 … Weiterlesen

Negative Vergleiche vermeiden

Frage: Wie kann eine Abfrage mit einem not equal-Vergleich (<>) in der WHERE-Bedingung optimiert werden? Lösung: Grundsätzlich sollten Vergleiche mit not equal (<>) vermieden werden, da ein Vergleich mit equal schneller ausgeführt wird. Das mag im ersten Moment nicht so einfach sein, in vielen Fällen aber kann ein not equal auch mit einer Kombination aus … Weiterlesen