Montag, 29. Juli 2013

UPDATE in Clustered Index = DELETE mit nachfolgendem INSERT?

Im vorherigen Artikel “UPDATE in HEAP = DELETE mit nachfolgendem INSERT?“ habe ich auf Grund eines interessanten Threads in den MSDN-Foren belegt, dass ein UPDATE-Befehl nicht mit einem DELETE und anschließendem INSERT zu vergleichen ist. Beide Verfahren unterscheiden sich massiv in ihrem Ausführungs- und Ressourcenverhalten. Der aktuelle Artikel beleuchtet das gleiche Verfahren für einen Clustered Index, der in seiner Struktur anders aufgebaut ist als ein HEAP.

Mittwoch, 24. Juli 2013

GUI vs. T-SQL – trotz dbo / db_owner keine Berechtigungen?

Wir haben heute für ein neues Projekt eines Kunden einen POC (Proof of Concept) durchgeführt und dabei unter anderem die angeforderten Berechtigungen des Herstellers überprüft. Unter anderem sollte das Servicekonto der Applikation in der Datenbank selbst Mitglied der Datenbankgruppe [db_owner] sein. Das haben wir aus Sicherheitsgründen abgelehnt. Unter anderem habe ich ausgeführt, dass Mitglieder der Gruppe [db_owner] durch Manipulation der Datenbankgröße mittelbaren Einfluss auf das Dateisystem haben. Dem widersprach der Hersteller und demonstrierte das Verhalten mit der GUI – das Ergebnis (auf einem SQL Server 2012) war “verblüffend”.

Mittwoch, 17. Juli 2013

UPDATE in HEAP = DELETE mit nachfolgendem INSERT?

In einem recht interessanten Thread in den msdn-Foren von Microsoft ging es primär darum, die Gründe zu finden, warum ein UPDATE so lange dauert. Unter anderem wurde von – einem von mir sehr geschätzten Kollegen – Kalman Toth zu diesem Punkt erwähnt, dass eine UPDATE-Anweisung möglicherweise eine DELETE-Anweisung mit einer anschließenden INSERT-Anweisung sei. Das dies nicht der Fall ist, soll der nachfolgende Artikel detailliert belegen. Auf Grund der Komplexität dieses Themas werde ich diesem Thema zwei Artikel widmen. Der aktuelle Artikel beschäftigt sich mit dem UPDATE-Verhalten in einem HEAP.

Montag, 8. Juli 2013

Optimierung von Partitioned Views

In einem Kundenprojekt wurden eine sogenannte “Partitioned View” eingesetzt, um Daten, die auf mehrere Relationen aufgeteilt waren, in einem abzufragenden Objekt zusammen zu fassen. Die Ausführung dieser Abfrage benötigt von Jahr zu Jahr mehr Zeit für die Ausführung. Die Analyse – und vor allen Dingen die Optimierung - dieser Abfrage war etwas komplizierter. Dieser Artikel zeigt, wie man nicht nur durch Indizierung Ausführungspläne von komplexen Systemen wie z. B. einer Partitioned View optimieren kann.

Mittwoch, 3. Juli 2013

Verhalten von DEFAULT-Einschränkungen bei nachträglich hinzugefügten Attributen

Durch einen Thread in den MSDN-Foren von Microsoft wurde ich auf ein sehr interessantes Verhalten von Microsoft SQL Server 2012 aufmerksam, das beim Hinzufügen von neuen Attributen mit der Einschränkung NOT NULL zu bestehenden Relationen zu Tage tritt. Bis Microsoft SQL Server 2008 R2 wurde beim Anfügen eines neuen Attributs für eine bestehende Relation automatisch der benötigte Platz für die Datensätze reserviert, wenn dem hinzugefügten Attribut ein DEFAULT-Wert zugewiesen wurde. Das neue Attribut wurde anschließend automatisch mit dem Standardwert befüllt. Durch die neue Methode von Microsoft SQL Server 2012 wird dieses Verhalten vollständig “über Board” geworfen und zu Gunsten von Performance beim Erstellen von neuen Attributen radikal geändert.

Montag, 1. Juli 2013

Most Valuable Professional (MVP) – SQL Server

Heute habe ich von Microsoft eine Email mit dem folgenden Inhalt erhalten:

“Sehr geehrte(r) Uwe Ricken,

herzlichen Glückwunsch! Wir freuen uns, Ihnen den Microsoft® MVP Award 2013 verleihen zu können! Diese Auszeichnung wird an herausragende, führende Mitglieder der technischen Communities verliehen, die ihre wertvollen praktischen Erfahrungen mit anderen Menschen teilen. Wir schätzen Ihren außerordentlich bedeutenden Beitrag in den technischen Communities zum Thema SQL Server im vergangenen Jahr hoch ein.”

Neben der Zertifizierung zum “Microsoft Certified Master: SQL Server 2008” freut mich diese Verleihung ganz besonders. Seit 2008 versuche ich möglichst regelmäßig, in den Microsoft Foren zu SQL Server (deutsche und englische Foren) mit meinem Wissen ein wenig weiter zu helfen. Um so schöner ist es, dass diese Aktivitäten von Microsoft mit dem MVP-Award belohnt werden. Ein Grund mehr, meine Leidenschaft für den SQL Server mit Vorträgen, Schulungen und Forenunterstützung zu demonstrieren.

Zitat Microsoft

„Mit dem Microsoft Most Valuable Professional (MVP) Award möchten wir unseren ganz besonderen Dank an außergewöhnliche, unabhängige Community-Leader, die ihre Leidenschaft, technische Expertise und praktische Kompetenz zu Microsoft-Produkten mit anderen teilen, aussprechen. Microsoft unterstreicht mit dem MVP Award seine tiefe Verbundenheit zu technischen Communities. Schon vor dem Aufkommen des Internets und der sozialen Medien haben Menschen zusammengefunden, um ihre Ideen und Best Practices in technischen Communitys mit anderen zu teilen.“

 

Herzlichen Dank fürs Lesen!