Glorf.it

Glorf IT

Bedenkliches aus dem IT-Alltag

16. März 2009 um 20:40

Verschachtelte Transaktionen

Heute war schon alleine deswegen ein guter Tag, weil mir jemand eine kluge Frage zu SQL stellte. Manche Dinge vergisst man ja wieder, aber ich weiß noch genau, wie wenig ich zu Beginn meiner Beschäftigung mit Datenbanken verstand, warum bei verschachtelten Transaktionen zwar genau so viele COMMITs wie BEGIN-TRANSACTIONs nötig sind (leuchtet ein), aber ein ROLLBACK immer bis zum Beginn der äußeren Transaktion zurück rollt… 🙂

Als ich heute einem Kollegen auf diese Frage antwortete, fand ich in "meinen" TSQL-Richtlinien neben einer etwas langweiligen Erklärung den Hinweis (sinngemäß):

Verschachtelte Transaktionen sind im günstigsten Fall wirkungslos und sollten daher nicht eingesetzt werden.

Dabei fällt mir noch etwas ganz anderes ein: Hat eigentlich schon jemand mal einen sinnvollen Einsatz für Savepoints gefunden? Unsere Anwendungen haben zwar ein paar längere Transaktionen, aber wir kämpfen dann meist mit den Nebenwirkungen, insbesondere der Lock-Escalation. Aber ich bevorzuge viele kleinere Transaktionen hintereinander… Geschmackssache?

12. März 2009 um 23:23

SQL Server Kilimanjaro

Was man im Internet so über die kommende SQL-Server-Version mit Codenamen "Kilimanjaro" liest ist merkwürdig wenig. Ich habe mal ein paar Infos zusammengetragen, die mir zuverlässig erscheinen.

Am 6.10.2008 veröffentlichte Microsoft in einer Presseerklärung erste Infos:

  • Hauptfeatures seien "self-service analysis capabilities code-named “Project Gemini”" und "self-service reporting".
  • Freigabe sei im ersten Halbjahr 2010 (vorher werde es wieder ein CTP geben).

Das klingt alles sehr BI-lastig. Außerdem ein Release noch nicht mal 24 Monate nach SQL-Server 2008? Interessant finde ich die Aussage dazu im Artikel "Die nächste Version von SQL Server – Ankündigungen von der BI Konferenz:

SQL Server Kilimanjaro. Das wird die nächste Version von SQL Server. Es ist eine Zwischenrelease, die vor allem im Bereich Business Intelligence neue Funktionalitäten bringt. Das ist nicht die nächste Hauptrelease von SQL Server (die also wahrscheinlich eine Versionsnummer 11 hat und wie angekündigt 24-36 Monate nach SQL Server 2008 erscheinen wird), sondern eine Zwischenversion.

So sieht es auch Michael Otey im SQL Server Magazine:

While the marketing spin on the new release will be about customer choice, don’t forget that Microsoft plans for product releases on a major-minor cycle. Each server product gets a major release about every four years and then is followed by a minor R2 release about two years later. In the past, customers waited a long time (around five years) for products such as Windows XP and SQL Server 2005, so I can understand why Microsoft wants to shorten the release cycle. However, two years is too short, especially for an infrastructure product like SQL Server.

In einem Bericht von der Konferenz "SQL PASS 2008" wird der Vortrag von Ted Kummert beschrieben. Hier heißt es nun wieder anders:

Kilimanjaro – Keep an eye out for Kilimanjaro. This is the code name for the next release of SQL Server. It is expected to be released in 2010 or 24 to 36 months after the SQL Server 2008 release. One of the items that caught my eye was the ability to manage multiple SQL Server instances and migrate code seamlessly between the environments with a 'DAC Pack' which is a consolidated set of code.

Details zum "DAC Pack" (inkl. wirklich interessantem Film) findet man bei Neil Hutson:

Second was the Data-Tier Application Component (DAC) which combines details about the application that the developer is building and turns schema into something called a "DAC PACK" which can be offered to the Fabric Control Point to aid in the deployment of the data tier within the Managed SQL Server Fabric.

Der Film lässt leider offen, ob das auch für Updates gilt, aber ich denke mal doch. Was sollte ein Deploy, der nur auf der grünen Wiese aufsetzen kann?

Auf Ella Maschiach's BI Blog fand ich den Hinweis auf den ersten CTP1. Der Fragebogen steht noch online, aber die Anmeldefrist war bis 31.12.2008.

Komischerweise fand ich keine neueren Infos. Kennt jemand relevante Links aus diesem Jahr?

11. März 2009 um 22:17

Kriterien für eine Lock-Escalation

Beim gestrigen Vortrag zum Thema "Snapshot Isolation" kamen ein paar Themen zur Sprache zu denen wir nicht mehr alle Details zusammen bekamen. Hier ein paar Schnipsel zum Thema "Lock Escalation". Eine sehr gute und kompakte Sammlung von Infos findet man im Artikel "Lock Escalation in SQL2005" von Sunil Agarwal.

Eine Lock Escalation von Row-Locks auf Table-Locks wird ausgelöst, wenn

  • die Zahl der gehaltenen Sperren die Schwelle von 5000 überschreitet oder
  • der für Sperren genutzten Speicher 40% des aktuellen Cache überschreitet (wenn sp_configure-Option "locks" = 0) oder
  • der für Sperren genutzte Speicher 40% des für Sperren konfigurierten Speichers überschreitet.

Gestern lernte ich, dass der Schwellwert von 5000 am SQL-Server-2008 konfigurierbar sei. Das klingt gut.

Zudem sprachen wir auch über Möglichkeiten, wie man gezielt verhindern kann, das die Sperren eskaliert werden. Auch das findet man im oben genannten Artikel sehr gut erklärt.

10. März 2009 um 19:35

verteilte Transaktionen mit .net?

Für einen Arbeitskreis dürfte ich mir letzte Woche als Krankheitsvertretung sehr kurzfristig Gedanken zum Thema "verteilte Transaktionen in einer service-orientieren Welt" machen. An dem Tag fielen satte 6 Mitarbeiterinnen und Mitarbeiter meines Teams aus. Einige hatten nur die schnelle Krankheit (1 Tag Magen-Darm), andere waren die ganze Woche (einer sogar 2 Wochen) "disabled". Jedenfalls konnte ich an dem Tag prima üben über etwas zu reden von dem ich keine Ahnung habe… Man sagte mir, dass sei für das persönliche Weiterkommen förderlich – ich hoffe das stimmt nicht. 😉

Jedenfalls habe ich bei meiner Suche zum Thema "verteilte Transaktionen mit .net" eine kleine Linksammlung angelegt, die ich hiermit der Öffenlichkeit zur Verfügung stelle. Wenn jemand weitere Artikel zu dem Thema kennt, dann bitte ich um einen Link als Kommentar.

Die ".net Enterprise Transaction Services" bieten scheinbar genau das, was man in einer service-orientieren Welt so braucht: offenbar können hier mehrere Services auf unterschiedlichen Computern an der gleichen verteilten Transaktion teilnehmen. Stimmt das? Und wenn ja, wo ist der Haken: Performance?

Den kurzen, übersichtlichen Artikel "Managing Distributed Transactions with ADO.NET 2.0 using TransactionScope" zum Thema TransactionScope fand ich auch hilfreich.

Der Artikel "Distributed Transactions in .NET 2.0" ist zwar auch weiterführend, aber tendenziell etwas mager.

Der etwas älterere Artikel "HOW TO: Perform a Distributed Transaction with a .NET Provider by Using ServicedComponent in Visual C# .NET" von Microsoft hat mir nur bedingt weitergeholfen.

10. März 2009 um 19:30

USB-Stick zum Premium-Preis

Letzte Woche mussten wir für unsere Testversionen einen USB-Stick bestellen. Dazu trägt man in einem elektronischen Formular die Ware ein und bekommt dann den innerbetrieblichen Verrechnungspreis angezeigt. Obwohl wir als Großeinkäufer sicher gute Preise bei unseren Lieferanten bekommen, sind die internen Verrechnungspreise meist (leicht?) höher als auf dem freien Markt. Das liegt daran, dass die Kosten für die Einkaufsabteilung noch draufgeschlagen werden. Das vermute ich jedenfalls, aber vielleicht täusche ich mich auch und wir kaufen nur Premiumprodukte und zahlen deswegen Premiumpreise.

Nun zurück zur Bestellung: Wir benötigen einen großen USB-Stick, um die Testversionen unserer kompletten DVD oder wenigstens fast der kompletten DVD drauf zu bringen (wir haben inzwischen Double-Layer-DVDs). Da es die 8 GByte-Stick derzeit schon im Supersonderangebot für 10 Euro gibt, war die Verwunderung groß, dass wir intern 156 Euro zahlen dürfen. Der 4 GByte-Stick würde immerhin 93 Euro kosten. Das ist ein stattlicher Preis, der leicht zu erklären sei, so der Einkaufsmitarbeiter zu einer Kollegin: es ist eine Sicherheitslösung dabei. Wer – angesichts des Preises – jetzt an einen Iris-Scanner denkt, den muss ich enttäuschen. Es geht um einen Passwortschutz. Solche gibt es zwar (beim auch nicht billigen) Conrad schon für 50 Euro, aber unsere sind sicher noch besser… 😉

Wer denkt, es ginge nicht noch teurer, der sollte sich mal diesen 8GB-Stick für 300 Euro ansehen… Beachtlich, nicht wahr?

9. März 2009 um 20:03

Die Sprache "Oslo"

Wer sich – wie ich – nichts unter einer Modellierungssprache vorstellen kann, der findet im Artikel "The Oslo Modeling Language Specification" vielleicht erste Ansatzpunkte:

The "Oslo" Modeling Language M is a modern, declarative language for working with data. M lets users write down how they want to structure and query their data using a convenient textual syntax that is convenient to both author and read.
M does not mandate how data is stored or accessed, nor does it mandate a specific implementation technology. Rather, M was designed to allow users to write down what they want from their data without having to specify how those desires are met against a given technology or platform. That stated, M in no way prohibits implementations from providing rich declarative or imperative support for controlling how M constructs are represented and executed in a given environment.

Alternativ dazu finden sich auch im Artikel "Build Metadata-Based Applications With The “Oslo” Platform" von Chris Sells Ansatzpunkte. Aber ehrlich gesagt, habe ich es immer noch nicht richtig verstanden wo der große Gewinn liegen soll… Wahrscheinlich liegt es daran, dass ich mich erst mal rantasten muss, was denn eine "Modellierungssprache" eigentlich ist.

9. März 2009 um 19:32

kostenloses eBook zu Visual Basic 2008

Bei Galileo gibt es gerade wieder ein kostenloses eBook: "Visual Basic 2008 – Das umfassende Handbuch von Andreas Kühnel und Stephan Leibbrandt. Das Buch hat 1330 Seiten und kostet regulär 50 Euro.

Beworben wird es mit folgender Beschreibung, die ich noch nicht überprüfen konnte:

Das Buch enthält alle Neuerungen des Visual Studio 2008. So werden die Themen LINQ (Language Integrated Query, ganz neu in .NET 3.5) oder etwa XAML (eXtensible Application Markup Language) sehr ausführlich in eigenen neuen Kapiteln behandelt.

Dieses umfassende Kompendium wird Umsteigern und Einsteigern gleichermaßen gerecht, es ist sowohl Lehrbuch als auch Nachschlagewerk.

Also am besten selber eine Meinung bilden. Leider ist es kein PDF, sondern eine Sammlung von HTML-Seiten. Aber dafür ist es kostenlos. Hier geht es direkt zum Download.

Danke an Klaus von der SQL-PASS Franken
9. März 2009 um 19:23

Lange Monologe

Ich kann mich gut erinnern, dass es in meinem Studium einen berüchtigten Kommilitonen gab, der viel redete. Ich meine wirklich viel. Aber heute fand ich einen Meister des Fachs. Als ich in den Zug stieg setzte ich mich auf einen freien Platz auf einem "Vierer". Dort saß ein älterer Herr (ein Beamter kurz vor der Pensionierung, wie sich heraus stellte) und sprach mit einer jungen Frau ihm gegenüber. Über die Frau kann ich nichts berichten. Sie sagte nur "Aha", "HmHm", "Ach so" und so weiter. Und selbst dabei wurde sie fast noch durch den Herrn unterbrochen, der die ganze Zeit über die Ermittlungen berichtete mit denen er zu tun hat. (Der "Verdächtige" hat wohl die potentiellen Mitbieter bei einer Auktion bedroht und nun wunderten die Banken sich darüber, dass die Immobilien zu billig weggingen.)

Jedenfalls redete der Mann bis ich endlich Aussteigen durfte. Die junge Frau stieg nämlich an der gleichen Station aus. Deswegen musste er wohl oder übel aufhören… 😉

4. März 2009 um 20:14

SQL-PASS Franken: Snapshot Isolation

SQL-PASSNächsten Dienstag, am 10.3.2009, findet in Nürnberg der nächste Vortrag der SQL-PAS Franken statt. Diesmal geht es um ein Thema, dass viel mit Performance und Parallelität zu tun hat: Snapshot Isolation.

Siegfried Spuddig, der auch schon auf Konferenzen referierte (hier mit Bild), ist freier Consultant. Derzeit betreut er eine mehrere Terabyte umfassende hochverfügbare SQL-Server-Datenbank in einem Großkonzern. Die Zusammenfassung klingt sehr interessant:

Performance-Tuning von datenbankgestützten Applikationen ist mehr als nur Hardware- und Index-Tuning. Spätestens bei längeren Transaktionen müssen sich Entwickler und Administratoren zusammensetzen, um die Serialisierung der Abfragen zu vermeiden.

Neben der Optimierung des Datenmodells für Multi-User-Systeme können Sperrenmechanismen auf Query-, Datenbank- und Tabellen-Ebene eingesetzt werden. Serialisierung kann aber auch ausdrücklich gewünscht sein, um sicherzustellen, daß bestimmte Abläufe sich nicht überschneiden.

Um die technischen Möglichkeiten mit SQL Server 2000, 2005 und 2008 und ihre Vor- und Nachteile geht es in diesem Vortrag.

Gastgeber ist wieder die plus-IT GmbH im Eurocom Center (Lina-Ammon-Str. 3, Gebäude 3 / 3. Stock, 90471 Nürnberg).

Wie immer ist der Eintritt frei, auch Nicht-Mitglieder sind herzlich eingeladen. Aber bitte bei Klaus Oberdalhoff unter kob(ät)sqlpass.de anmelden, damit er weiß wie viele Stühle benötigt werden.

4. März 2009 um 18:13

Feueralarm

Gestern gab es in meiner einen riesen Feueralarm und ich habe nichts mitbekommen… OK, der Alarm war in einem anderen Gebäude (über die Straße), aber angeblich wurde von der Feuerwehr die komplette Straße abgesperrt und auch die Polizei rückte in großer Mannschaft an. Wie ich höre war das komplette Gebäude mit mehreren Hundert Mitarbeitern innerhalb von 8 Minuten geräumt. Im Aufzug habe es etwas rumgekokelt nachdem vormittags das Wartungspersonal des Herstellers dort etwas gemacht habe. Ob das stimmt, weiß ich nicht. Ich weiß nur, dass ich ein großes Event verpasst habe. 🙁

Naja, zum Glück ist nichts passiert. Auf der Zugfahrt lernte ich von Kollegen, dass man im Brandfall die Bürotüren nicht abschließen soll. Normalerweise müssen wir immer alles verriegeln, wenn wir den Raum verlassen. Aber dann könnte ja weder die Feuerwehr in den Raum, noch könnten die Teamleiter schnell nachsehen, ob alle raus sind. Bei uns verlassen die Kapitäne nämlich als letzte das Schiff. Liegt das daran, dass den Verfassern der Vorschriften klar ist, wer am ehesten zu entbehren wäre?

3. März 2009 um 21:03

Network Monitor mit TDS-Unterstützung

Ebenfalls von meinem Chef kam der Hinweis auf die neue Beta-Version des "Network Monitor Open Source Parser" von Microsoft. Darin wurden viele der "plötzlich" offen zugänglichen "Microsoft Protokolle" integriert.

While parsers for many protocols have always shipped with Network Monitor, we have now decided to ship parsers for the protocols described in the Windows Open Protocol Specifications […].

Dazu gehört auch auch die TDS-Unterstützung. Man kann also Pakete des SQL-Servers damit im Klartext ansehen. Das könnte richtig klasse sein. Allerdings habe ich da so meine Vorurteile: Ethereal zu toppen dürfte für eine Beta schwer sein. Dennoch würde ich ihn gerne mal ausprobieren. Aber bis ich dazu komme… 😉

Hat den schon mal jemand ausprobiert?

3. März 2009 um 20:19

Bin ich selbstständig oder angestellt?

Wen es interessiert woran man erkennen kann, ob jemand selbstständig oder angestellt ist, der sollte das informative Infoblatt "Selbstständig oder angestellt" von der GEK lesen. Hier werden knapp und verständlich verschiedene Sonderfälle erläutert.

Jetzt verstehe ich auch, warum beherrschende Gesellschafter grundsätzlich keine Angestellten sind und im Rahmen eines Arbeitnehmerüberlassungsvertrages nicht vermittelt werden können. Aber manche Geschäftsführer können durchaus Angestellte sein, aber längst nicht alle…