Sunday, 24. June 2007
SQL:2003 sei Dank für eine Menge Zeit, die ich letzte Woche sparen konnte. Schuld daran waren vor allen "MERGE", aber auch eine mit "GENERATED ALWAYS AS IDENTITY" definierte Identitätsspalte.
Es wäre schon viel Schreib- und Testarbeit gewesen ohne "Merge" eine Tabelle mit Daten aus einer anderen zu aktualisieren. Das Einfügen neuer Zeilen wäre ja noch eine leichte Übung gewesen, aber für die Modifikation bereits vorhandener Zeilen habe ich bisher stets ein Programm schreiben müssen.
Das hat sich mit der aktuellen Version des SQL-Standards geändert: Nun ist es mit einer SQL-Anweisung möglich Daten in bestehenden Zeilen zu aktualisieren bei gleichzeitiger Erweiterung der Tabelle um neue Datensätze. Ich verwende "Merge" auch dann, wenn ich nur Daten zu bestehenden Schlüsseln ändern will.
Nun ist das so eine Sache mit den SQL-Standards: Viele sinnvolle Vorschläge sind in den aktuellen Versionen der gängigen Datenbanksystemen nicht umgesetzt. Das betrifft SQL:1999 und auch SQL:2003. Andererseits versuchen einige DBMS-Hersteller durch proprietäre Ergänzungen der Datenbankfunktionalität Kunden an sich zu binden. Das betrifft vor allem Oracle, aber leider auch MySQL.
"Mischen possible" vollständig lesen
Wednesday, 30. May 2007
Interessant! Sehr große Tabellen scheinen MySQL an den Rand der Verzweiflung zu bringen. Diese Erkenntnis verdanke ich nicht eigener Praxis, sondern Bernds leidige Erfahrung:
"Ich trau aus Erfahrung keiner MySQL-Tabelle größer als 5 GB ..."
Hm, eigentlich sollten 5 oder 8 oder 10 GB keine Herausforderung für heutige DBMS sein, wohlgemerkt als Größe einer Tabelle. Solche und wesentliche größere Tabellen kommen in den besten Unternehmen vor.
Fragt man Vertreter von IBM oder Oracle danach, ob ihre DBMS diese Herausforderung bestehen, so werden sie gelangweilt mit Achseln zucken und "So what" fragen. Die wirkliche Herausforderung liegt im Terabyte-Bereich. Bis Bernds Tabelle den erreicht, fließt noch viel Wasser den Neckar herunter.
Möglicherweise wird er bereits davor seine Datenbank in ein anderes DBMS migriert haben.
Friday, 25. May 2007
... die kostenfreie Express-Variante des SQL Server 2005 installieren: Das geht nicht!. Zumindest nicht unter XP, immerhin mit SP2.
Ständig hat das Setup etwas zu meckern: Mal fehlt das .NET Framework 2.0, mal passt ihm der vorhandene Windows Installer nicht. Als Setup hat man es schon schwer.
Da lobe ich mir DB2 und gerade die - auch kostenfreie - Express-C. Dort wird alles installiert, was benötigt wird, ohne Aufforderung, zuerst dies oder das zu installieren.
In Sachen SQL Server Express bin ich mir nicht mal sicher, dass nach erfolgreichem Setup die Datenbank auch arbeitet. Denn ich habe in diesem Rechner 2 GB RAM, und Microsoft beschränkt die Nutzung für die Express auf 1 GB. Muss ich jetzt 1 GB aus dem Rechner reißen? Oder beschränkt Express künstlich den verfügbaren Speicher für die Datenbank.
Auch in diesem Falle hat die DB2 Express-C einen klaren Vorteil: Hier liegt die Schranke auf 4 GB RAM. Dagegen sind die freien DBMS-Varianten von Oracle und Microsoft mit all ihren Beschränkungen Kinderkram.
Thursday, 14. December 2006
... auf der kleinsten Platte. Selbst für große Datenbanken. Aber nur, wenn das DBMS über eine richtig starke Komprimierungsfunktion verfügt.
Das ist wahr für DB2 9. Das ist nicht wahr für DBMS wie Oracle oder den SQL Server.
Nun konnte ich bisher nur spekulieren, um wie viel der Platzbedarf einer Tabelle mit der DB2 9 Kompression reduziert werden kann. Laut IBM bis zu 70%, gemäß CW zwischen 45% und 75%. Wie hoch die Einsparung tatsächlich werden kann, hängt natürlich vom Design und Inhalt der zu komprimierenden Tabelle ab.
Da dem so ist, habe ich mit meiner größten lokal gespeicherten Tabelle einen Test gefahren. Diese Tabelle belegt ca. 1 GB auf der Harddisk. Mit der Kompression liefert DB2 auch eine Erweiterung der "Inspect"-Funktion, die die mögliche Reduktion des Platzbedarfs einer Tabelle schätzt. Für meine Tabelle hat Inspect eine Einsparung von 77% vorhergesagt. Überraschend viel. Und tatsächlich:
Nach Kompression verminderte sich der Größe meiner Tabelle auf 21,3% der unkomprimierten Tabelle.
"Platz ist ..." vollständig lesen
Saturday, 30. September 2006
DB2 9 bietet viele Verbesserungen gegenüber den Vorversionen und auch gegenüber konkurrierenden DBMS, vor allem in Sachen Performance und TCO. Diese Neuerungen werden ausführlich in einem Bloor Research " White Paper" von Philip Howard beschrieben.
Immer wieder dieser PH. Dass er nicht nur Gutes über DB2 9 schreibt, sondern auch schon mal über Oracle Elaborate (warum bloss) zeigt sein Artikel " Oracle rebuilds Warehouse".
Doch zurück zu DB2 9 mit einigen Kernaussagen aus dem White Paper:
"Tue Gutes und rede darüber" vollständig lesen
Friday, 29. September 2006
"First, I think this leaves Oracle and Sybase (as the two vendors with the best current handle on XML) well behind the curve, with Microsoft and the others more or less out of sight. What this release will allow you to do is to build applications that handle both XML and relational data much more easily, without losing any of the richness that this implies, and without degrading performance." Dies schrieb Philip Howard in " The Register" bereits im Dezember 2004 zur XML-Unterstützung in DB2 Viper im Vergleich zu anderen DBMS. Daran hat sich bis heute nichts geändert, weder Oracle noch Microsoft haben bisher nachgezogen.
Geändert hat sich nur der Name, die Viper hat nun Produktstatus und heißt DB2 9. Apropos Namensgebung, dazu schreibt Howard in seinem White Paper " The business benefits of DB2 9"
"The “Viper” release of IBM DB2, which is officially version 9, is the most important release of this database for many years. Indeed, IBM regards Viper as so significant that, at one time, it considered calling it DB3, on the basis that this represents the third generation of databases from IBM, following IMS and DB2." Die "2" macht schon Sinn wegen der zwei zugrundeliegenden Paradigmen: hier das relationale Modell, dort der XML-Standard.
Tuesday, 22. August 2006
Namen sind angeblich nur Schall und Rauch. Das sollte dann auch für Namen in Datenbanken gelten. Ob eine Tabelle nun "Umsatz" heißt oder "xxx" ist der Datenbank egal.
Ich mache aber immer wieder die Erfahrung, dass es zwar egal ist, welchen Namen das Datenbankkind bekommt, aber der sollte wenigstens groß geschrieben werden. Das gilt für Namen von Datenbanken selbst, sowie für Namen von Objekten in einer Datenbank.
Immer, wenn ich diesem Prinzip nicht gefolgt bin, hatte ich später irgendwo größeren Schreibaufwand. Manche Anwendungen gehen schon mal davon aus, dass Schema- oder Tabellennamen groß geschrieben sind.
Zumindest ist diese Regel besser als die blödsinnigen eckigen Klammern, die Access verwendet.
Sunday, 13. August 2006
... ist ein weitreichendes und komplexes Unterfangen. Deshalb habe ich bisher tunlichst nur handverlesene Teilbereiche betrachtet.
Man suche z.B. einige Funktionen aus, die eine Datenbank bieten sollte, und vergleiche die Qualität der Unterstützung für ausgesuchte Datenbanken. So geschehen in " Die zweitbeste Datenbank der Welt". Man sollte auch die verglichenen Funktionen nennen, was ich dort offensichtlich nicht getan habe.
Das hole ich hier nach, nicht vollständig und auch nicht in der Reihenfolge des Vergleichs: Partitionierung, XML-Unterstützung, "Self Tuning" und Komprimierung.
Es müssen ja nicht nur Funktionen oder Features sein, es können auch Lizenzbedingungen sein. Das ist oft nicht weniger interessant, wie " Freie Datenbanken von unfreien Anbietern" zeigt.
Aber alles beleuchtet nur einen kleinen Ausschnitt. Ich denke, man kann ... wo ich das gerade schreibe, kommt auf meinem Rechner der RSS zu einem CW-Artikel zu einem DB-Benchmark-Tools herein. So ein Zufall.
Bernd hat den zweiten Vergleich getrackbackt. Dort wünschte sich ein Kommentator einen Vergleich der "Performance und Leistungsfähigkeit". Das ist nun ein schwierigeres Unterfangen, dem ich auch hier nicht nachkommen werde.
Doch einige Bemerkungen zu diesem Thema möchte ich hier loswerden:
"Datenbanken vergleichen ..." vollständig lesen
Saturday, 12. August 2006
Warum migrierte Quelle von Oracle auf den SQL-Server? Schade für Oracle, eigentlich egal für den Rest der Welt.
Denn nicht alle Datenbanken wurden migriert, sondern nur die einer Anwendung für Außendienstmitarbeiter. Ich habe keine Ahnung, warum dies der CW eine ganze gedruckte Seite wert war (immerhin erstreckt sich die digitale Ausgabe über 4 Seiten).
Kurz zusammengefasst: Die bisherige Außendienst-Software erschien zukünftigen Ansprüchen nicht mehr erfüllen zu können. Man fand bei Neckermann (gehört wie Quelle auch zum KarstadtQuelle-Konzern) die Basis für ein neues System. Das Neckermann-System nutze den SQL-Server als Datenbank. Das scheint der unspektakuläre Hintergrund der Geschichte zu sein.
Aber mein Lieblingsredakteur ue wäre nicht ue, wenn er sich nicht aufgrund seiner hervorragenden Kenntnis der Datenbankszene erlauben würde, mehr daraus macht. Was er denn auch tat.
"Neckermann macht's möglich" vollständig lesen
Wednesday, 9. August 2006
MySQL macht's möglich: Nun gibt es auch von allen drei großen Datenbank-Anbietern freie Versionen ihres DBMS. Frei im Sinne von Lizenzgebühren. Frei aber nicht von verschiedensten Beschränkungen.
Welches freie Angebot welchen Unfreiheiten unterliegt, soll folgende Übersicht zeigen.
| DB2 Express-C | MySQL Pro | Oracle XE | SQL Server Express | Betriebssystem | Linux, Windows | Linux, Windows, einige UNIX | Linux, Windows | natürlich nur Windows | max. RAM-Größe | 4 GB | keine Begrenzung | 1 GB | 1 GB | 32/64 Bit | 32/64 | 32 | 32 | 32 | max. Anzahl Prozessoren | 2 CPU dual core | keine Begrenzung | 1 | 1 | max. Größe einerDatenbank | keine Begrenzung | keine Begrenzung | 4 GB | 4 GB | FreeProduction/ Redistribution | ja/ja | nein/nein (nur mit kommerzieller Lizenz) | ja/ja | ja/ja | Support | Forum und/oder gegen Gebühr | Forum und/oder gegen Gebühr | nur Forum | nur mit Upgrade |
Offensichtlich sind die Spalten alphabetisch nach den Einträgen im Spalterkopf sortiert, oder ...
Na, welches FOSS DBMS sieht da am besten aus? Das ist doch einfach zu sehen:
"Freie Datenbanken von unfreien Anbietern" vollständig lesen
Wednesday, 7. June 2006
Durch Zufall bin ich auf einen inzwischen recht alten Artikel im " The Register" gestoßen. Am 9. Dezember 2004 tat Philip Howard von Bloor Research seine Meinung zur damals frischen Ankündigung der nächsten DB2 Datenbankgeneration kund: " IBM moves the database goalposts". Damals schon sehr vorausschauend in Hinblick auf die am Freitag beginnende WM.
Aber eben nicht nur in diesem Sinne vorausschauend: Einige Dinge, die ich hier über DB2 Viper und auch über die Reaktionen darauf, geschrieben habe, hat der Autor bereits Ende 2004 in besagtem Artikel zusammengefasst. Zu der Zeit konnte ich es noch nicht tun, weil dieser Blog noch nicht existierte.
Aber nun ernsthaft zum Thema "Schaum vorm Mund", das, was nach Philip Howard Oracle nun schon eine Weile mit sich rumträgt. Zu Beginn lade ich ihn als Zeuge für mein " Ceterum Censeo": "IBM has concluded, rightly in my view, that using a relational approach is not adequate for processing XML. Either you store it in relational format, in which case you get a major performance hit because you have to convert it to and from tabular format whenever you store or retrieve it, or you have to store it as a binary large object, in which case you can’t do any processing with it." Im Nachhinein lasse ich mir von Howard des weiteren bestätigen, dass der XML-Unterstützung durch Viper die direkten Konkurrenten zur Zeit nichts entgegen zu setzen haben:
"Schaum vorm Mund" vollständig lesen
Friday, 2. June 2006
Wozu sind Standards eigentlich gut, wenn sich keiner an sie hält. So einen Standard kann man eigentlich in die Tonne drücken.
Ich meine hier den ISO-SQL-Standard. Hier kocht jeder Datenbank-Hersteller sein eigenes proprietäres Süppchen. Die einen, damit zahlende Kunden sich nicht mehr aus der Umklammerung des Herstellers befreien können, die anderen, weil sie die Bedeutung von Standards nicht erkannt haben oder erkennen wollen. Erstes gilt in jedem Fall für Oracle, zweiteres muss ich leider bei MySQL annehmen.
Trotzdem ist der SQL-Standard seit Jahren von unschätzbarer Bedeutung (und hat auch nichts in einer Tonne verloren).
Was aber fast noch mehr nervt, aus heutiger Sicht fast schon ein Skandal ist, ist, dass die ISO für das Herunterladen der Standard-Dokumente richtig abkassieren will. Die etwas kostengünstigere Alternative wäre nur der Kauf eines Buches.
Aber zurück zur Standardtreue der Hersteller.
"Das nervt" vollständig lesen
|