Glorf.it

Glorf IT

Bedenkliches aus dem IT-Alltag

21. Mai 2007 um 22:45

Das Datenbank-Lied

Roy Osherove hat auf seinem Blog ein selbstgetextetes Lied über eine Datenbank mit schlechter Performance geschrieben und dazu auch gleich vertont.

Text und MP3 befinden sich in seinem Artikel "It's Time For Violence: A song about Databases".

Text-Ausschnitt:

That stored procedure aint lookin' well

Who wrote that trigger should go to jail

and that index, It is slower than a snail

What the hell

Viel Spaß!

gefunden bei The Daily Grind
21. Mai 2007 um 18:57

Verbindungseinstellungen

Wenn man sich mit einer Anwendung zum SQL-Server verbindet, dann kann und sollte man über die Sitzungsseinstellungen das Verhalten des SQL-Servers konfigurieren. Das ist recht kompliziert, weil

Die für eine Session tatsächlich geltenden Optionen kann man auf zwei Arten herausbekommen. Entweder auf die "harte Tour": @@OPTIONS enthält die Werte in kodierter Form. Um sie im Klartext zu bekommen, kann man sich behelfen.

select
name as "SetOption",
(case when @@options&number=number then 1 else 0 end) as "Status"
from master..spt_values
where type=(select type
from master..spt_values
where number=0 and name='@@options')
and number != 0

Das Ergebnis sieht beispielsweise so aus:

SetOption                           Status
=======                             =====
disable_def_cnst_check              0
implicit_transactions               0
cursor_close_on_commit              0
ansi_warnings                       1
ansi_padding                        1
ansi_nulls                          1
arithabort                          1
arithignore                         0
quoted_identifier                   1
nocount                             0
ansi_null_dflt_on                   1
ansi_null_dflt_off                  0
concat_null_yields_null             1
numeric_roundabort                  0
xact_abort                          0

Alternativ kann man auch DBCC verwenden. Hier werden nur die Optionen angezeigt, die tatsächlich aktiv sind. Ein ARITHIGNORE = OFF wird also nicht angezeigt.
dbcc useroptions

Wie man sieht, werden aber auch so nützliche Sachen wie DATEFORMAT oder LANGUAGE angezeigt:

SetOption                  Value
=======                    =====
textsize                   2147483647
language                   Deutsch
dateformat                 dmy
datefirst                  1
lock_timeout               -1
quoted_identifier          SET
arithabort                 SET
ansi_null_dflt_on          SET
ansi_warnings              SET
ansi_padding               SET
ansi_nulls                 SET
concat_null_yields_null    SET
isolation level            read committed
|