Glorf.it

Glorf IT

Bedenkliches aus dem IT-Alltag

20. Dezember 2006 um 19:09

Vorschau auf den SP2 für den SQL-Server-2005

Wer es nicht erwarten kann oder professionelle Interessant hat, der kann seit gestern eine Vorabversion des SP2 für den SQL-Server-2005 ausprobieren, genauer geht es hier um den CTP3. Er ist schon recht stabil, die Freigabeversion wird wohl bald folgen.

Infos und Download-Links gibt es im Artikel "How to obtain the latest service pack for SQL Server 2005".

Die Liste der mit SP2 behobenen Probleme klingt imposant. Und das sind ja nur die dokumentierten Änderungen…
😉

Die ReadMe und das Feature-Pack (enthält das gute alte MDAC und weitere "Redistributables") werden auch zum separaten Download angeboten. Alle Download, die nur irgewas mit SQL-Server zu tun haben, findet man bei MS auf der Seite mit dem originellen Titel "Downloads für Microsoft SQL Server 2005"…

19. Dezember 2006 um 22:00

Entwicklungsvorgehen mit DBPro

Mir gefällt am DBPro (Visual Studio Team Edition for Database Professionals) einfach unheimlich gut, dass man damit jetzt endlich auch in der Microsoft-Welt so Datenbanken entwickeln kann, wie man es mit der Software macht: offline, lokal getestet, archiv-unterstützt und im Team.

So ist es von MS gedacht:

  • Man richtet pro Datenbank ein Projekt ein, dass an das Archiv (z.B. Team System) angebunden wird. Vorhandene Datenbanken können ganz leicht importiert werden.
  • Man bearbeitet seine Datenbank ohne direkt in einer konkreten Datenbank rum zu wurschteln, wie man es mit dem "Enterprise-Manager" (Friede seiner Asche) oder dem "Managament-Studio" machen würde.
  • Trotzdem hat man Syntax-Check und Konsistenz-Check für bspw. Stored-Procedures. Alle Fehler im Projekt werden in einer Übersicht angezeigt, vergleichbar mit dem Ergebnis eines Compilerlaufs.
  • In einem "Build"-Lauf kann man sich die Skripte zur Erstellung der Datenbank "from the scratch" zusammenbauen lassen, die man entweder selber mit sqlcmd.exe einspielen kann oder
  • mit einem "Deploy" gleich ausführen kann. Dann wird auf dem in den Projekt-Properties angegebenen Server die DB angelegt.
  • Dann kann man alles mit den Unit-Tests für SQL testen und nötigenfalls nachbessern.
  • Testdaten kann man sich dazu automatisch generieren lassen.
  • Ist man fertig, dann werden alle Änderungen ins Archiv übernommen und stehen für jeden zur Verfügung.
  • Um bestehende Datenbanken auf den neuen Stand zu transformieren, kann man sich Delta-Skripte erstellen lassen: zwischen zwei DBs oder zwischen zwei Ständen im Archiv oder zwischen einem Archiv-Stand und einer konkreten DB.

Einfach klasse, oder?

OK, nicht alles was glänzt ist gold und natürlich ist das eine 1.0er-Version. So habe ich auch schon ein paar Verbesserungswünsche auf der Platte, aber an dieser Richtung kommt man nicht mehr so leicht vorbei.

Siehe auch DBPro aka Data Dude Version 1.0 verfügbar mit Infos zur Entstehung
19. Dezember 2006 um 21:37

MS-Hotfix für kleine Netze auf Basis von Windows-XP

Für alle Anwender mit einem kleinen Netz mit einem Windows-XP-System als "File-Server" ("Perr-to-Peer") hat Microsoft am 6.12.2006 einen Hotfix für Windows XP Professional bereitgestellt.

Das Problem ist nicht ganz einfach zu erklären: Wenn ein Programm eine Datei öffnet, dann wird pro offener Datei eine Verbindung zu dem Server hergestellt, als Basis dient hier das Protokoll SMB. Irgendwann bei Windows 2000 baute Microsoft künstlich eine Beschränkung in die Arbeitsplatzsysteme ein (also Windows-2000-Professional), die auch noch unter Windows-XP-Professional drin ist: Zu jedem "Server" (mit Windows-2000/XP-Professional) sind maximal 10 gleichzeitig geöffnete SMB-Verbindungen möglich. Das ist eigentlich kein Problem, weil die Dateien meist sofort wieder geschlossen werden. Mit der Verbreitung von in .net geschriebenen Anwendungen spitzt sich die Lage aber plötzlich zu. Schuld daran sind die Notifications, die es "schon immer" gab, aber jetzt recht easy zu programmieren sind.

Beispiel: Wenn man im Explorer ein Verzeichnis offen hat, dann "bemerkt" der Explorer von alleine, wenn sich da plötzlich etwas ändert, meinetwegen andere Dateien dazukommen und löst selbstständig einen Refresh aus. Das wird über sogenannte "long-term SMB requests" gelöst, die den Prozess über Änderungen informieren. Das ist ein sehr gutes Feature für fast alle Arten von Anwendungen, das den Komfort erheblich erhöht. Nicht nur beim Explorer. Seswegen hat MS nun den Hotfix bereitgestellt.

Ohne den Hotfix würden schon 10 geöffnete Explorer, die alle verschiedene Verzeichnisse auf Freigaben des gleichen "Windows-XP-Professional-Servers" zeigen, ausreichen, damit die Notifications nicht mehr klappen. Wenn ein Elfter daher kommt, dann kommt gemeinerweise keine Fehlermeldung, sondern er wird einfach nicht über Änderungen informiert. Wenn er sich aber darauf verlässt, dann ist er verlassen…
Nur wenn man versucht eine Datei zu öffnen, dann kommt ein unerklärlicher Fehler. Unerklärlich deswegen, weil es beim nächsten Mal schon wieder klappen kann, falls ein Prozess seine Verbindung inzwischen beendet hat.

Mit dem Hotfix wird diese Grenze jetzt konfigurierbar. So ist es an den Server-Systemen übrigens schon immer gewesen. Windows-2000-Nutzer schauen in die Röhre…

Übrigens wird diese Grenze gerne mit der Begrenzung von Windows-XP/2000-Professional auf maximal 10 gleichzeitig erlaubten Arbeitsplatzrechnern, die auf Dateien auf einer der freigaben zugreifen, verwechselt. Klar, ist ja auch ziemlich ähnlich. Oben geht es aber um geöffnete Dateien. Die Grenze, dass gleichzeitig maximal 10 anderen Geräten auf die Freigaben zugreifen können, bleibt aber bestehen.

19. Dezember 2006 um 00:31

MSDN-Wiki

Heute habe ich zum ersten Mal davon gehört, dass es so eine Art MSDN-Wiki geben wird. Es ist so gedacht, dass man zu den MSDN-Dokumenten Anmerkungen machen kann. Das wird gerade für vier Bereiche getestet:

Man sieht auf den Seiten jeweils ganz unten einen Link "Add new Community Content". Dann kann man quasi eigene Fußnoten einfügen, die jeder gleich sieht. Was mich etwas stört, aber nicht wundert ist, dass man einen Live- oder Passport-Account haben muss. Was das Ganze für mich aber schwierig macht, ist die Tatsache, dass man seine Anmerkungen nicht an der passenden Stelle machen kann, sondern am Schluss. Normalerweise sind die Dokumente länger als eine Seite. Wie soll man da die Bemerkungen richtig einordnen. Das ist für mich ein eklatanter Nachteil gegenüber einem Wiki. Selbst die Kommentarfunktion des Media-Wiki finde ich ausgereifter, weil dabei gleich klar ist auf welche Passage wich der Kommentar bezieht.

Trotzdem würde ich es gerne ausprobieren. Aber so lange das Kommentieren beim SQL-Server nicht geht… 😉

18. Dezember 2006 um 23:58

SQL Server: Maximale Anzahl an Tabellen

Bei der Frage eines Kollegen wie viele Tabellen pro Datenbank der SQL-Server genau erlaubt, musste ich neulich ganz schön in den Handbüchern suchen. Bei Sybase SQL-Anywhere stand es unter "Limitations", bei Microsoft nicht. Aber die Suche bei Google führte mich ratz-fatz auf die Seite im Microsoft-Handbuch unter dem Titel "Maximum Capacity Specifications" für Version 2005 und Version 2000. (Schade, dass die Suche in der MSDN nicht ansatzweise so gut ist…)

Die kurze Antwort auf obige Frage wäre übrigens: 2.147.483.647

Es gibt aber eigentlich keine genaue Grenze für Tabellen: In den internen Systemtabellen werden alle Datenbankobjekte in einer gemeinsamen Tabelle verwaltet. (Ich schätze, dass ist beim SQL-Server-2005 immer noch so, obwohl mal die Tabellen der Ressource-DB nicht sehen kann). Die ID für diese Datenbank-Objekt ist ein einfacher INT, IDs müssen positiv sein. Daher kann es nur 2.147.483.647 Objekte geben. Dazu zählen: Tabellen (sowohl System als auch User-Defined), Views, Prozeduren (auch Extended), Funktionen, Defaults, Trigger, Primärschlüssel, Fremdschlüssel, Unique-Constraints und Checks.

Wenn man sich solche Fragen stellt, dann ist man meiner Erfahrung gerade dabei eine Anwendung zu schreiben, die an einer ganz anderen Engstelle hängen bleiben kann: Potentiell wir für alle die vielen Tabellen Platz in der TempDB benötigt. Die sollte so positioniert werden, dass sie nötigenfalls ordentlich wachsen kann.

16. Dezember 2006 um 00:48

Lebens-Art-Wallpapers

Weil ich gerade wieder die aktuellen Wallpapers diesmal zum Thema "Am Limit" auf die Lebens-Art-Seite gestellt habe, will ich auch gleich mal ein paar vorstellen, die mir besonders gut gefallen:

Am Limit Freiheit

Die unerklärliche Leichtigkeit des Seins

Armes Deutschland Helden

Ich merke gerade, wie mich die Begeisterung packt… Aber schaut lieber selber. Ich bin nicht objektiv…
😉

15. Dezember 2006 um 23:37

Liste von Freeware und Open-Source-Software

Auf thesimpledollar.com gibt es eine recht lange Liste von Freeware und Open-Source-Software, die besonders nützlich sind: The Simple Dollar » 30 Essential Pieces Of Free (and Open) Software for Windows

Ich persönlich habe da die eine oder andere Anregung gefunden, einige Programme setze ich auch schon ein…

gefunden bei ueba.net
15. Dezember 2006 um 23:33

Experten

Wenn meine Oma sagte "Du mir schon so ein Experte!", dann war das nicht als Kompliment gemeint. In dem Artikel "What Makes YOU an Expert?" (aus dem "SQL Server Magazine", Dezember 2006), wird die Frage beleuchtet, was genau einen Experten ausmacht. Der Auslöser war eine Gehaltsumfrage, die ergab, dass (echte) Datenbank-Experten erheblich mehr verdienen als normale DB-Admins. Das löst natürlich die Frage aus: Wie wird man ein Experte?

Auf die Frage wie er definiert, was es heißt Experte zu sein, antwortet Brian Moran

"If you don't know the answer, you can get the answer quickly."

Seiner Aussage nach wird derjenige als Experte angesehen, der ein kleines bisschen schneller die Antwort zu einem Problem in seinem Fachgebiet gefunden hat als die Kollegen. "Experte sein" ist immer relativ…

In dem Artikel werden drei Merkmale gefunden, die dabei helfen können selber Experte zu werden:

  • Solide Kenntnisse der Kerntechnologie,
  • Fähigkeiten verschiedenste Informationsquellen zu dem Thema zu nutzen und
  • Verbindungen zur IT Community um neue Ideen zu untersuchen.

Aber Vorsicht: Wenn mich jemand explizit als "Experten" hinzuziehen will, werde ich zunächst mal misstrauisch. Weniger wegen des Spruchs meiner Oma als aufgrund meiner eigenen Erfahrungen. Ich würde es so formulieren (mal irgendwo aufgeschnappt):

Ein Experte ist jemand, den man in letzter Minute hinzuzieht, um einen Mitschuldigen zu haben.

Schon allein deswegen würde ich mich nicht unbedingt als Experten bezeichnen…
😉

PS: Neben diesen Feuerwehreinsätzen, ist die eigentlich häufigere Form subtiler: Ich selber fühle mich ab und an als Handbuch missbraucht. Dabei ist es so, wie im Artikel beschrieben: Ich kenne die Antworten auch nicht auswendig. Ob ich sie in den Handbüchern wirklich so viel schneller finde, ist noch die Frage…
14. Dezember 2006 um 20:54

Windows PowerShell SDK frisch zu haben

Im Weblog des "Windows PowerShell Team" steht's geschrieben:

Das Windows PowerShell SDK ist jetzt verfügbar. Es richtet sich an Leute, die selber die Powershell erweitern möchten, also eigene CmdLets schreiben wollen.

Allerdings findet man das SDK in der Installation des "Microsoft Windows Software Development Kit for Windows Vista" auch nur, wenn man die Anleitung vom Powershell-Team beachtet:
Installation

Das Bild ist vom Windows PowerShell (Thanks).
14. Dezember 2006 um 20:46

Al Shugart – ein Name den man kennen sollte

Bei Heise.de las ich gerade, dass Al Shugart gestorben ist. Der Mann hat so viel erreicht, hatte so viele Rückschläge und ist ein ganz gutes Beispiel dafür, dass man sich niemals aufgeben sollte.

Der lesenswerte Nachruf bei Heise.de beleuchtet die wichtigsten Stationen seines Lebens in denen die Floppy und Seagate nicht fehlen dürfen.

13. Dezember 2006 um 21:57

Caching im Festplattensubsystem

Mein Kollege Hans machte mich gestern auf das Dokument "Description of using disk drive caches with SQL Server that every database administrator should know" von Microsoft aufmerksam. Der Hintergrund sind weitgehend unbekannte oder besser ignorierte Ursachen für zerstörte Datenbanken. Tatsächlich sollte jeder Admin über die Risiken Bescheid wissen, denen man bei der Default-Konfiguration von PCs und Servern ausgesetzt ist.

Konkret geht es um die verschiedenen Caches, die so ein Datensatz durchlaufen muss, bis er endlich echt auf der Platte gesichert wurde. Treue Leser werden bei mir auch schon den einen oder anderen Hinweis dazu gelesen haben… 😉

Schön finde ich, dass hier endlich mal alle Dokument zu einem zusammengefasst werden.

PS: In der (automatischen) deutschen Übersetzung lautet der Titel übrigens "Mit SQL Server zwischenspeichert Beschreibung von Verwenden von Laufwerk dass jeder Datenbank-Administrator kennen sollte". Noch Fragen?

13. Dezember 2006 um 21:44

Ist SQL immer case-insensitiv?

Das kommt darauf an. SQL an sich ist schon immer case-insensitiv, d.h. ob man die SQL-Schlüsselwörter groß oder klein schreibt ist allein eine Frage des Geschmackes oder der Konvention. Das bin ich jetzt seit 18 Jahren so gewohnt, ich finde klein praktischer. Dennoch schreibe ich in letzter Zeit auf häufigen Wunsch eines einzelnen Kollegen in meinen dienstlichen Beispielen und Musterlösungen immer alle SQL-Schlüsselwörter groß. Ich versuche es wenigstens…

Das gilt aber nicht für die Datenbank-Objekte. Hier bestimmt die Collation, die beim Anlegen der Datenbank angegeben wurde, ob die Namen der Tabellen, Views, Procedures, User, etc. case-sensitiv oder -insensitiv sind. Wurde hier eine case-sensitive Collation angegeben, dann werden die Systemtabellen mit dieser Collation angelegt. Die Folge ist, dass alle Objektnamen exakt richtig geschrieben werden müssen.
Aber selbst wenn man eine case-insensitive Collation gewählt hat, dann ist es schlau immer auf die richtige Schreibweise zu achten, damit man die Collation später mal einfach ändern kann.

Wem das zu viel Stress ist, der kann das auch einfach ignorieren und auf die Schreibweise pfeifen. Wenn er die Collation später mal ändern will, dann muss er einfach die Datenbank mit einer case-insensitiven Collation anlegen, aber dann beim Anlegen der Tabellen für jedes einzelne String-Feld (varchar, char, text, mit und ohne n) die "richtige" case-sensitive Collation angeben. Dann sind die Systemtabellen case-insensitiv, die eigenen Tabellen hingegen case-sensitiv.

Variablen und Cursornamen sind übrigens immer case-insensitiv.

Inspiriert zu diesem Posting wurde ich durch den Beitrag von Mladen Prajdic auf seinem Weblog.