Steffen über Cloud, Azure und Datenbanken

Steffen Krause - Cloud Solution Architect

Steffen über Cloud, Azure und Datenbanken

  • Wieder da bei Microsoft

    Nur kurz: Ich bin wieder da - als Cloud Solution Architect für Microsoft Azure. More to come...

    Gruß,

    Steffen

  • Abschied von Micrososoft

    Liebe Freunde, liebe Blogleser, liebe Kunden und Partner, liebe noch-Kollegen

    Nach 8 Jahren Microsoft und noch viel mehr Jahren SQL Server beginnt für mich am 10.12. eine neue Ära. Ich liebe SQL Server, ich habe immer gern für Euch die neuesten Informationen zusammen getragen, und ich mag nach wie vor Microsoft und die vielen coolen Technologien. Warum dann der Wechsel? Bei allem Guten hat mir eines häufig gefehlt: Berlin. Als ich daher ein Angebot bekommen habe, das mir mehr Berlin in einem coolen Umfeld bietet habe ich mich nach langer Überlegung entschlossen anzunehmen. Mehr dazu bald in meinem neuen privaten Blog unter http://steffenkrause.wordpress.com/ 

    Der Datenbankwelt bleibe ich zu mindestens teilweise erhalten, aber dabei wird es nicht nur um SQL Server gehen. Wer mich wieder live sehen will wird Gelegenheit bekommen, ich plane, zu mindestens auf den Frankfurter Datenbanktagen und der PHP Konferenz zu sprechen, mehr wird sicherlich folgen

    Ich danke Euch allen für die treue Leserschaft, die guten Kommentare und Fragen, die Zusammenarbeit, die vielen Anregungen und sogar Freundschaft in den vielen Jahren. Es war ne tolle Zeit! Später könnt Ihr mich unter http://steffenkrause.wordpress.com/ erreichen.

    Gruß,
    Steffen

  • Gerüchte und Mythen über SQL Server

    In meiner beliebten Reihe „Fragen von Kunden“ gibt es heute mal einige Gerüchte zu SQL Server, die von Wettbewerbern genannt werden um den Kunden zu verunsichern. Ich bin schon ziemlich erstaunt, welche Informationsdefizite bestehen…

    Zu den Gerüchten:

    1. Der SQL Server kann keine vernünftigen Locks (Sperren) durchführen. Er lockt (sperrt) immer seitenweise, was dazu führt, dass man unvorhersehbares Laufzeitverhalten erzeugt.

    Tja, SQL Server 6.5 hat noch ganze Seiten gesperrt…

    Seit SQL Server 7.0 gibt es Row Level Locking. Allerdings wählt SQL Server bei großen Mengen von Datenänderungen auch manchmal Page (Seite) oder gar Table Locks, da dies Hauptspeicher und vor allem die Zeit zum Setzen und Entfernen der Locks spart. Hier ist SQL Server deutlich effizienter als andere Datenbanksysteme. Wem dieses Verhalten nicht gefällt, der kann einen ROWLOCK Table Hint in den Abfragen verwenden oder Page Locks für einen Index mit der Index Option ALLOW_PAGE_LOCKS = { ON | OFF } deaktivieren. Bei manchen Vorgängen, insbesondere DDL-Statements wie ALTER TABLE ist allerdings ein Table Lock unumgänglich, das ist in anderen Datenbanken auch so.

    2. SQL Server verwendet pessimistisches Locking. Dadurch blockieren Leser Schreiber und umgekehrt und die Parallelität wird gesenkt

    Ausschließlich pessimistisches Locking wurde bis SQL Server 2000 verwendet…

    Seit SQL Server 2005 hat der Kunde die Wahl, ob er optimistisches oder pessimistisches Locking verwenden will, wobei pessimistisches nach wie vor der Standard ist.

    Worum geht es? Nehmen wir an, Transaktion A will einen Datensatz schreiben, Transaktion B denselben Datensatz lesen (bei Row Level Locking). Beide Transaktionen sind noch nicht abgeschlossen. Klar ist, dass Transaktion B auf keinen Fall den noch nicht committeten neu geschriebenen Wert lesen darf (Dirty Read), denn es kann ja sein, dass Transaktion A zurückgerollt wird. Nun hat die Datenbankengine zwei Möglichkeiten:

    Pessimistisches Locking: Wenn der Datensatz von Transaktion B geschrieben wird setzt die Engine einen exklusiven Lock auf den Datensatz. Transaktion B will vor dem Lesen einen Shared Lock haben, bekommt den aber wegen dem exklusiven Lock erst nach Abschluss von Transaktion A.

    Optimistisches Locking: Bis zum Abschluss der Transaktion A wird neben den geänderten Daten auch die alte, committete Version des Datensatzes gehalten (in tempdb). Dadurch kann Transaktion B die alte Version der Daten lesen und es ist kein Shared Lock notwendig. Das entspricht zum Beispiel dem Verhalten in Oracle (Oracle verwendet die Begriffe pessimistisch und optimistisch allerdings ein wenig anders, da es die hier angegebene erste Variante gar nicht gibt). Optimistisches Locking können Sie in SQL Server mit READ_COMMITTED_SNAPSHOT oder TRANSACTION ISOLATION LEVEL SNAPSHOT (mit leicht unterschiedlichem Verhalten) verwenden. Mehr dazu hier: http://msdn.microsoft.com/en-us/library/ms179599.aspx

    Warum gibt es nun beide Varianten? Weil pessimistisches Locking ressourcenschonender und für Szenarien besser geeignet ist, wo meist unterschiedliche Datensätze zugegriffen werden (z.B. Lagerhaltung). Optimistisches Locking ist hingegen flexibler.

    3. Der SQL Server ist fast unbezahlbar, da man keine vernünftige Lizensierung durchführen kann, die eine unbeschränkte Anzahl von Usern (z.B. im Web-Betrieb) erlaubt.

    SQL Server kann man auf Prozessor (bis 2008R2) bzw. Core (ab SQL 2012) Basis lizenzieren und damit beliebig viele Benutzer supporten. Und auch die kostenlose SQL Server Express Version ist in manchen kleinen Web-Szenarien eine Option.

    Bei der Gelegenheit: Auch von Oracle gibt es ja eine kostenlose Express Version (XE). Allerdings wird diese im Gegensatz zu SQL Server Express nicht gepatcht, auch nicht bei den reichlich vorhandenen Sicherheitslücken. Damit ist sie für Web-Aufgaben (und eigentlich für fast alle Aufgaben) komplett ungeeignet.

    4. Der SQL-Server verwendet immer feste, nicht anpassbare Blockgrößen bei der Speicherung. Oracle kann hier zwischen 2K und 32K skalieren.

    Das ist richtig, SQL Server verwendet immer 8k Datenseiten für die Speicherung. Die gesamte Datenbankengine und das IO Subsystem ist daraufhin optimiert, und auch Hersteller von Storagelösungen können sich darauf einstellen. In Oracle gibt es die Möglichkeit, die Blockgröße anzupassen, aber nur die wenigsten Kunden nutzen diese Möglichkeit. Zumal verschiedene Blockgrößen innerhalb einer Instanz zu einer Fragmentierung des Hauptspeichers führen würden – man kann nun mal nicht eine 32kB Seite in den Platz laden, der von 4 8kB Seiten freigegeben wurde, wenn dieser Platz nicht hintereinander liegt.

    Die Performanceergebnisse von SQL Server geben uns hier wohl recht… Und bei größeren Datenmengen verwendet SQL Server Read Ahead mit Lesegrößen bis zu 1024 kB, um effizienter auf das Storagesystem zuzugreifen.

    5. Der SQL-Server hält sich nicht an die ANSI-Standards und hierdurch ist Interoperabilität nicht gewährleistet.

    Es ist zwar richtig, dass es geringe Unterschiede zwischen SQL Server und ANSI SQL gibt, aber meines Wissens gilt dies auch für jedes andere relationale Datenbank. Einige der Differenzen zwischen Oracle SQL und ANSI SQL finden sich hier: http://de.wikipedia.org/wiki/Oracle_(Datenbanksystem)#Abweichungen_vom_ANSI-SQL-Standard. Allerdings ist diese Liste bei weitem nicht vollständig. So ist zum Beispiel die Oracle SEQUENCE-Syntax nicht ANSI compliant (die von SQL Server 2012 schon).

    Im Falle von SQL Server liegen die Unterschiede vor allem in Datentypen (wie TIMESTAMP), die bereits vor Verabschiedung des ANSI Standards anders verwendet wurden.

    Allgemein haben allerdings alle großen Datenbanksysteme viele Features, die weit über den ANSI Standard hinausgehen. Daher ist Interoperabilität immer nur dann möglich, wenn beim Schreiben des SQL Codes ausdrücklich darauf geachtet wird, nur standardisierte Sprachkonstrukte zu nutzen.

    6. Es gibt kein Äquivalent zu den PLSQL-Packages des Oracle, das ein Lifecycle-Management sowie eine Verteilungs-Strategie zulassen würde.

    Da hätten wir ja eines der nicht standardkonformen Oracle-Features. In ANSI SQL gibt es kein CREATE PACKAGE…

    SQL Server hat zwar keine Packages, wer möchte kann allerdings Schemas stattdessen zur Strukturierung des Codes verwenden (für die Oracle-Fraktion: in SQL Server werden Schemas anders verwendet als in Oracle. Ein Oracle-Schema entspricht mehr einer SQL Server Datenbank)

    Für Lifecycle Management und Verteilungsstrategie gibt es allerdings in SQL Server deutlich bessere Varianten. Insbesondere die Möglichkeit der Integration von SQL Server Management Studio mit Quellcodeverwaltungssystemen, die neuen SQL Server Data Tools mit ihrem kompletten round trip engineering für Datenbankcode, die DAC-Pakete und die Integration mit Visual Studio Team System wären hier zu nennen…

    Wie andere Datenbanksysteme auch unterliegt SQL Server einer ständigen Weiterentwicklung, um das geeignete Datenbanksystem zu finden sollte man immer über die aktuellen Möglichkeiten informiert sein. Ich hoffe ich konnte mit diesen Beispielen zeigen wie wichtig dies ist.

    Zum Abschluss noch ein paar Links zum Thema SQL Server Mythen:

    Gruß,
    Steffen

  • Videoserie AlwaysOn in SQL Server 2012

    Beim PASS Camp im November habe ich einen kompletten Tag zu der neune Hochverfügbarkeitslösung AlwaysOn in SQL Server 2012 bestritten und dabei die komplette Installation einer etwas komplexeren AlwaysOn Umgebung als Demo gezeigt und als Lab angeboten.

    Diese Demo habe ich nun als Videos aufgenommen.

    Im ersten Teil zeige ich die Installation eines 4-Knoten-Clusters auf Basis von Windows Server 2008 R2 SP1, wobei zwei von den vier Knoten Zugriff auf ein iSCSI SAN haben (und die anderen beiden nicht)

    Im zweiten Teil  baue ich einen 2-Knoten SQL Server Failover-Cluster auf und teste ihn

    Im dritten Teil baue ich aus dem SQL Server Failover Cluster und den anderen beiden Windows Cluster Konten eine AlwaysOn Availability Group auf, richte Read Only Routing ein und teste das ganze.

    Die Videos finden sich hier:

    Teil 1: Windows Cluster TechNet Edge (incl. Download) Youtube
    Teil 2: SQL Cluster TechNet Edge (incl. Download) Youtube
    Teil 3: Availability Group TechNet Edge (incl. Download) Youtube

    Gruß,
    Steffen

  • SQL Server 2012 RC ist verfügbar

    Der Release Candidate (RC) von SQL Server 2012 ist jetzt verfügbar. Diese Version ist Feature Complete und kann so für Tests mit den finalen Features von SQL Server 2012 eingesetzt werden.

    Gegenüber der letzten CTP-Version gibt es einige wesentliche Verbesserungen

    • Die Hochverfügbarkeitslösung AlwaysOn ist nun Feature Complete. Es können bis zu 5 Replikas (1 Primäre schreibbare, 2 synchrone sekundäre, 2 asynchrone sekundäre) eingerichtet werden. Lesbare Secondaries und Backup von den Secondaries sind unterstützt. Letzteres kann man sogar über den Assistenten einrichten:
      3-2-1 Replicas3-2-2 Listener3-2-3 Synchronisation
    • In Power View kann jetzt eine “Mappe” aus unterschiedlichen Views angelegt werden
    • Ebenso gibt es in Power View jetzt eine Druckfunktion und einen PowerPoint Export:
      3Reading Mode4image
    • Der Resource Governor hat einige neue Funktionen für große Umgebungen, wie detailliertere CPU Kontrolle und Resource Pool Affinity
    • Change Data Capture von Oracle ist nun möglich
    • SQL Management Studio unterstützt Snapshot Backups von SQL Azure

    Die offizielle Information findet sich im Dataplatform Insider Blog

    Der Download ist hier (für Deutsch einfach auf deutsch umstellen). Die Release Notes finden sich auch dort. Wichtig sind vor allem die OS-Patches für AlwaysOn Availability Groups!

    Hier ist der Download für PowerPivot für Excel

    Gruß,
    Steffen

  • Betreiben von SQL Server in Virtualisierungsumgebungen – einige Hinweise

    Zum Thema betrieb von SQL Server in Virtualisierungsumgebungen und Private Cloud Szenarien gibt es auf der SQL CAT Seite vier hervorragende Whitepaper:

    Für diejenigen, die nicht die Zeit haben um sich die Whitepaper durchzulesen möchte ich hier die wichtigsten Fakten (ohne Anspruch auf Vollständigkeit) einmal zusammenstellen

    Installation

    • Dies betrifft Neuinstallationen in die Konsolidierungsumgebung, nicht die Migration von vorhandenen Umgebungen
    • Für Private Cloud/Konsolidierungsumgebungen ist es empfohlen, SQL Server VMs aus VM-Templates zu erstellen
    • SQL Server unterstützt sysprep zum Erstellen des Templates erst seit Version SQL Server 2008 R2
    • Man muss für sysprep genau nach Anleitung vorgehen. Die Installation erfolgt in 2 Schritten: Vorbereiten (danach sysprep und Template erstellen) und abschließen. Dokumentation: http://msdn.microsoft.com/de-de/library/ee210754.aspx
    • Stellen Sie unbedingt sicher, dass die Hyper-V Integrationskomponenten (bzw. das Äquivalent für die verwendete Virtualisierungsumgebung) in der jeweils aktuellen Version installiert sind, verwenden Sie keine emulierten Geräte

    Migration

    • Um festzustellen, welche SQL Server Instanzen in die virtuelle Umgebung migriert werden können verwendet man am einfachsten das MAP Toolkit Demo von mir hier

    Dynamic Memory

    • SQL Server unterstützt Hyper-V 2008 R2 SP1 Dynamic Memory
    • Das SQL Server Dienstkonto sollte unbedingt das Recht “Lock Pages in memory” haben
    • Die Summe der “Startup Memory” Einstellungen aller VMs, die potentiell (auch nach einem ungeplanten Failover) auf einem Host laufen können muss kleiner sein als der physikalische Speicher des Hosts
    • Wenn möglich sollte vor einer (geplanten) Live Migration einer SQL VM der Hauptspeicher von SQL Server mittels sp_configure ‘max server memory’ reduziert werden. Nicht vergessen, diese Einstellung nach der Live Migration wieder zu zurückzunehmen!
    • Über “Memory Weight” kann man die Priorität der VMs bei der Hauptspeicherzuteilung einstellen

    Storage

    • Alle Best Practices für SQL Server Storage gelten auch für virtualisierte Umgebungen. Siehe mein Webcast SQL Server Storage Performanceanalyse
    • Daher für Lastsysteme: Daten und Logs auf getrennte LUNs, hinter denen getrennte Platten liegen
    • Auf keinen Fall dynamische Disks für Daten und Logs
    • Entweder Passthrough Disks oder VHDs fester Größe verwenden

    CPU

    • Virtualisierung erhöht leicht den CPU-Bedarf von SQL Server. Da Hyper-V maximal vier virtuelle CPUs pro VM unterstützt bedeutet das, dass nur Lasten, die weniger als 4 volle CPU-Cores benötigen virtualisiert werden sollten.
    • Wenn CPUs overcommitted werden (also der Summe aller VMs mehr virtuelle CPUs zugewiesen werden als der Server physische CPU-Kerne hat) so erhöht sich der CPU-Bedarf durch die Virtualisierung weiter. Daher sollte bei Lastsysteme Overcommitment vermieden werden. Das gilt insbesondere, wenn die verwendeten Prozessoren keine Second Level Address Translation (SLAT) unterstützen
    • Netzwerk-intensive Lasten erhöhen ebenfalls den CPU-Bedarf

    Hochverfügbarkeit

    • Sowohl Host-Clustering (mit Live Migration) als auch Guest Clustering (Windows/SQL Cluster in VMs) ist mit Hyper-V unterstütz (zu VMWare siehe unten). Beides kann für höchste Flexibilität und Ausfallsicherheit kombiniert werden.
    • Ebenso ist Database Mirroring und Log Shipping auch im virtualisieren Betrieb unterstützt

    Lizenzierung

    • SQL Server Enterprise bzw. Datacenter können in Virtualisierungsszenarien durch die erweiterten Virtualisierungsrechte deutlich Kosten sparen
    • Details dazu auf der SQL Server Lizenzierungs-Seite

    VMWare (und andere)

    • Grundsätzlich ist VMWare (und andere Hypervisor) als Virtualisierungsumgebung supportet, solange die konkrete VMWare Version mit dem SVVP validiert ist. Details: http://support.microsoft.com/kb/956893/en-us
    • Soll statt Hyper-V VMWare eingesetzt werden so muss man sich die Limitationen von ESX, insbesondere in Zusammenhang mit Clustern klar machen. So vMotion nicht in Kombination mit Windows Clustering unterstützt. Man muss sich also zwischen Host Clustering (vMotion) und Guest Clustering (SQL Server/Windows Server Cluster) entscheiden. Das ist nicht gut, denn die beiden Technologien schützen gegen unterschiedliche Arten von Ausfällen. Ebenso ist iSCSI nicht unterstützt.
      Quelle: http://www.vmware.com/pdf/vsphere4/r41/vsp_41_mscs.pdf Seite 11

    Gruß,
    Steffen

  • SQL Server “Denali” CTP3 Product Guide verfügbar

    Mit dem CTP3 Product Guide für SQL Server “Denali” ist jetzt eine umfangreiche Sammlung an Ressourcen verfügbar um sich mit allen wichtigen Neuerungen vertraut zu machen. Der Product Guide enthält:

    • 14 Product Datasheets
    • 8 PowerPoint Präsentationen
    • 5 Technische Whitepaper
    • 13 Hands-On Lab Preview Dokumente
    • 6 Click-Through Demos
    • 13 automatisch ablaufende Demos
    • 26 Links zu Online-Dokumentationen
    • 44 Links zu Online-Videos einschließlich 26 Präsentationen von der US-TechEd 2011

    Der Download des Product Guide findet sich hier

    Gruß,
    Steffen

  • Volltextfeatures in SQL Server “Denali” Teil 2: Semantische Suche

    Nachdem ich im letzten Artikel über allgemeine Neuerungen in der Volltextsuche von SQL Server „Denali“ gesprochen habe geht es dieses Mal um ein komplett neues Feature in der Volltextsuche: Statistische Semantische Suche. Das Wort „semantisch“ hat in der IT viele Bedeutungen, hier heißt es: Die Volltextsuche erkennt statistisch relevante Schlüssel-Phrasen in Dokumenten und kann diese Erkenntnis für die Extraktion dieser Schlüssel-Phrasen und für die Analyse der Ähnlichkeit von Dokumenten verwenden. Typische Fragestellungen für die semantische Suche sind: „Was sind wichtige Phrasen in diesem Dokument?“ oder „Welche Dokumente ähneln diesem Dokument und warum?

    Die semantische Suche ist eine Erweiterung der Volltextsuche, die extra für volltextindizierte Spalten aktiviert wird. Das geht in T-SQL (durch Angabe einer Sprach-ID und des Schlüsselworts Statistical_Semantics an der volltextindizierten Spalte) oder in der grafischen Volltextindex-Oberfläche:

    SemanticSearchIndex

    Damit das klappt muss allerdings zuerst die semantische Suche konfiguriert werden. Dazu wird zuerst die semantische Sprachstatistik-Datenbank installiert, indem man das Paket SemanticLanguageDatabase.msi vom Installationsmedium entpackt und die entpackte Datenbank an den Server anhängt. Danach muss die Datenbank noch mittels sp_fulltext_semantic_register_language_statistics_db registriert werden. Wie das geht findet sich hier.

    Die unterstützten Sprachen kann man dann mit

    select * from sys.fulltext_semantic_languages

    herausfinden. Deutsch ist dabei. Die eigentlichen semantischen Daten in dieser Datenbank sind übrigens als Internal Tables abgelegt und somit nicht direkt für ein SELECT zugänglich.

    Danach kann man wie oben angegeben den Volltextindex mit semantischer Suche erstellen. Ich habe das auf der Filetable gemacht, deren Erstellung ich in diesem Artikel beschrieben habe. Es muss aber keine Filetable sein, jede volltextindizierte Spalte einer Tabelle funktioniert. Zu beachten ist, dass die semantische Suche einen Volltextindex deutlich vergrößert und auch die Erstellungszeit erhöht. Daher sollte man semantische Suche nur aktivieren, wenn man sie auch wirklich verwenden will. Außerdem muss natürlich die Volltextindizierung für die in der Tabelle vorhandenen Dokumenttypen vorbereitet sein: Die entsprechenden IFilter müssen installiert sein, deren Verwendung aktiviert usw.

    Schlüsselwörter finden

    Nun kann man zum Beispiel für ein Dokument herausfinden, was die statistisch wichtigen Schlüsselwörter in diesem Dokument sind. Das geht über die Funktion SEMANTICKEYPHRASETABLE:

    DECLARE @DocID hierarchyid

     

    SELECT @DocID = path_locator from MeineFiletable where name = 'ADS.pptx';

     

    --Key Phrases

    SELECT TOP(10) KEYP_TBL.keyphrase

    FROM SEMANTICKEYPHRASETABLE

        ( MeineFiletable,

          file_stream,

          @DocID

        ) AS KEYP_TBL

    ORDER BY KEYP_TBL.score DESC;

    keyphrase

    sql

    azure

    verwaltung

    technet

    durch

    datacenter

    tds

    isv

    unternehmen

    arten

    Offensichtlich habe ich hier also über SQL Azure gesprochen.

    Anders herum kann man auch herausfinden, in welchen Dokumenten es um Azure geht indem man die Dokumente nach Signifikanz der Phrase „Azure“ sortieren lässt:

    SELECT TOP (5) DOC_TBL.path_locator.ToString() Locator, DOC_TBL.name

    FROM MeineFiletable AS DOC_TBL

        INNER JOIN SEMANTICKEYPHRASETABLE

        ( MeineFiletable,

          file_stream

        ) AS KEYP_TBL

    ON DOC_TBL.path_locator = KEYP_TBL.document_key

    WHERE KEYP_TBL.keyphrase = 'azure'

    ORDER BY KEYP_TBL.Score DESC;

     

    Locator

    name

    /163317661833190.115726554008670.1866003634/
    218988078402337.61914970700195.3199820884/

    DatabaseProAzureReporting.docx

    /235419278667080.230118955961229.3763918334/
    95176762753143.43209610854162.380882874/

    Webcast SQL Azure und die Microsoft Cloud Plattform.pptx

    /235419278667080.230118955961229.3763918334/
    195400071903089.254316101152370.2453146947/

    Webcast SQL Azure Überblick.pptx

    /235419278667080.230118955961229.3763918334/
    204734086686021.60759175188448.1218421407/

    SQL Azure und die Microsoft Cloud Plattform.pptx

    /163317661833190.115726554008670.1866003634/
    148065100657714.221322731028740.4247534163/

    SQL Azure CeBIT.pptx

    Ähnliche Dokumente finden

    Der andere Anwendungsfall für die statistische semantische Suche ist es, ähnliche Dokumente zu finden. Das geht über die Funktion SEMANTICSIMILARITYTABLE. Details zur Ähnlichkeit erhält man über SEMANTICSIMILARITYDETAILSTABLE. Eine einfache Abfrage “Welche Dokumente sind diesem ähnlich“ funktioniert so:

    SELECT   mft.name, sst.score 

    FROM SEMANTICSIMILARITYTABLE

      ( MeineFiletable,

        file_stream,

        @DocID

      ) AS sst

    INNER JOIN MeineFiletable mft

      ON path_locator = matched_document_key 

    ORDER BY score DESC

    Name

    Score

    Webcast SQL Azure Überblick.pptx

    0,6667337

    SQL Azure CeBIT.pptx

    0,6150579

    sqldays 2010 SQL Server 2008 R2 NonBI.pptx

    0,3872314

    SQL Server 2005 - Webcast - 2005-09-28 - Schutz sensitiver Daten.ppt

    0,3602501

    Was ist SQL Server Express 2008 R2.pptx

    0,3286014

    Will man dann den Grund für die Ähnlichkeit finden so joint man über SEMANTICSIMILARITYDETAILSTABLE:

    DECLARE @DocIDMatch hierarchyid

     

    SELECT @DocIDMatch = path_locator

    FROM MeineFiletable

    WHERE name = 'SQL Server 2005 - Webcast - 2005-09-28 - Schutz sensitiver Daten.ppt';

     

    SELECT TOP(20) V4.keyphrase, V4.score

    FROM SEMANTICSIMILARITYDETAILSTABLE

      ( MeineFiletable,

        file_stream,

        @DocID,

        file_stream,

        @DocIDMatch

      ) AS V4

    ORDER BY V4.score DESC;

    keyphrase

    score

    sql

    0,6196678

    technet

    0,4326765

    server

    0,3456945

    verschlüsselung

    0,3421064

    durch

    0,3254796

    schlüssel

    0,3249941

    wird

    0,2818047

    datum

    0,2744119

    zertifikat

    0,2636287

    public

    0,2460675

    arten

    0,2402729

    kosten

    0,2268401

    master

    0,2166911

    passwort

    0,2148199

    zum

    0,2144909

    microsoft

    0,2132909

    authentifizierung

    0,2127908

    symmetrisch

    0,21237

    immer

    0,2091359

    gmbh

    0,2083207

    Offensichtlich geht es also in beiden Präsentationen um mein Lieblingsthema Verschlüsselung…

    In Summe kann die neue semantische Suche in SQL Server „Denali“ sehr umfassend beim Verständnis von Dokumentbeständen und der inhaltlichen Suche darin helfen und so die meisten dokumentorientierten Datenbankanwendungen deutlich aufwerten.

    Die Dokumentation zur semantischen Suche findet sich hier, der Download der Denali CTP3 hier

    Gruß,
    Steffen

  • SQL Server “Denali” CTP3 ist verfügbar

    Die aktuelle Community Technical Preview 3 (CTP3) von SQL Server “Denali” ist verfügbar. Diese Version hat “Production Quality”, kann also für reale Testszenarien incl. Upgrade-Tests verwendet werden.

    Die Neuerungen in SQL Server “Denali” gliedern sich unter drei wesentlichen Themen

    • “Mission Critical Confidence” bedeutet, dass SQL Server “Denali” Performance und Verfügbarkeit für die größten geschäftskritischen Anwendungen bei niedrigen Betriebskosten bietet. Dazu gehört das Erreichen der benötigten 9en mit AlwaysOn oder hochperformante Data Warehouse Abfragen mit Columnstore Indizes
    • “Breakthrough Insights” bezieht sich auf die vielen Neuerungen, die die Marktführerschaft im BI-Bereich (z.B. laut Gartner Magic Quadrant BI Platform, Jan. 2011) ausbauen. Dazu gehört die interaktive webbasierte Datenanalyse mit Project “Crescent” oder die Sicherung der Datenqualität mit Data Quality Services
    • “Cloud on your Terms” bedeutet schließlich, dass der Kunde freie Wahl hat, inwieweit er in die Cloud gehen will: von der klassischen On-Premise Lösung über Private Cloud bis zur Public Cloud mit SQL Azure ist alles auf der Basis von SQL Server Technologie unterstützt. Mit “Juneau” und den Verbesserungen bei den DAC Paketen ist auch eine einheitliche Entwicklung über alle Szenarien möglich.

    Gegenüber der ersten CTP von November 2010 gibt es eine Vielzahl von Neuerungen, hier die Details:

    Relationale Datenbank

    • Columnstore Indizes. Darüber habe ich hier schon geschrieben. Dieser neue spaltenbasierte Indextyp beschleunigt Data Warehouse Abfragen erheblich
    • FileTable ermöglicht den Zugriff auf SQL Server Filestream Daten direkt über das Dateisystem
    • Semantische Suche ermöglicht Volltextabfragen nach Ähnlichkeit (“Gib mir Dokumente, die diesem hier ähnlich sind”, “Sage mir, worin sich diese zwei Dokumente ähneln”)
    • Bis zu 15000 Partitionen pro Tabelle
    • Höhere Performance und mehr Funktionalität (Circular Arc, gesamte Erde) für geografische Datentypen
    • Performanceverbesserungen bei Filestream und Volltextsuche
    • Unterstützung von Windows Server Core
    • Neue Entwicklungsumgebung Project “Juneau” – ermögliche einheitliche Entwicklung für SQL Server, BI und SQL Azure
    • Sicherheitsverbesserungen: Benutzerdefinierte Serverrollen, verbessertes Auditing, Standardschema für Windows-Gruppen
    • Powershell 2.0, Implementation als PowerShell Modul statt als Minishell, PowerShell für Analysis Services und PowerPivot für SharePoint
    • LocalDB für SQL Server Express
    • Database Recovery Advisor macht komplexe Restore-Vorgänge (wie Point in Time Recovery) einfacher
    • AlwaysOn Verbesserungen gegenüber der ersten CTP (müssen teilweise noch über Trace Flag 9532 freigeschaltet werden da dieser Teil der CTP noch nicht “Production ready” ist)
      • bis zu 1 primäre und 4 sekundäre Repliken, davon bis zu insgesamt drei synchrone
      • Failover: automatisch, geplant manuell, erzwungen manuell
      • Backups von sekundären Repliken
      • Unterstützung von Filestream, FileTable, RBS sowie viele andere Verbesserungen

    Data Quality Services

    • Das ist eine neue Komponente von SQL Server, die die Datenqualität durch Verfahren wie Data Clensing und Data Matching entscheidend verbessern kann. DQS kann eigenständig oder innerhalb eines SSIS Datenflusses ausgeführt werden

    BI Development Studio

    • Beruht jetzt auf Visual Studio 2010

    Integration Services

    • Der größte Teil der Neuerungen in SSIS war bereits in der CTP1 vorhanden (SSIS Server, Projektverwaltung, Parameter)
    • Es gibt in der neuen CTP eine Vielzahl von Detailverbesserungen, wie Tutorials in BIDS, besser strukturierte .dtsx-Dateien für Vergleichstools, Standardberichte in SQL Server Management Studio für SSIS, verschiedene Stored Procedures für die Performanceanalyse

    Analysis Services

    • Die größte Neuerung ist ein neuer, spaltenbasierter Speichermodus basierend auf der VertiPaq Engine (die zuerst mit PowerPivot eingeführt wurde). Eine Analysis Services Instanz verwendet entweder das tabellarische oder das multidimensionale Modell, das wird bei der Installation der Instanz festgelegt.
    • Daneben gibt es auch Verbesserungen für das multidimensionale Modell, insbesondere eine skalierbarere String-Speicherung und die Unterstützung von Tabellen mit mehr als 2 Milliarden Zeilen
    • Für PowerPivot gibt es einige neue DAX-Funktionen sowie Erweiterungen bei der Administrationsschnittstelle in SharePoint

    Reporting Services

    • Project “Crescent” ist ein neues, hochgradig interaktives Datenanalyse-Werkzeug, mit dem Fachanwender rein webbasiert (Silverlight) per Drag & Drop eigene Analysen erstellen können – und das in Schön! In der aktuellen CTP3 kann Crescent nur auf tabellarischen Analysis Services Modellen aufsetzen
    • Der SharePoint Mode von Reporting Services (und damit auch “Crescent”) ist jetzt als SharePoint Shared Service implementiert. Das verbessert sowohl die Verwaltung als auch die Skalierbarkeit von Reporting Services im SharePoint Mode. Auch Claims Authentication wird (abhängig von der Datenquelle) damit unterstützt.
    • Mit den neuen Data Alerts können Endbenutzer sich über wichtige Änderungen in Berichten informieren lassen, z.B. wenn eine bestimmte Zahl in einem Bericht einen Schwellwert über- oder unterschreitet
    • Der Word- und der Excel-Renderer geben die Berichte jetzt im Office 2007/2010 Format aus (xlsx/docx). Das ermöglicht das Rendern größerer Berichte insbesondere nach Excel. Ein Export in die alten Formate (xls/doc) ist ebenfalls noch möglich, muss aber in rsreportserver.config aktiviert werden.

    Master Data Services

    • Es gibt eine neue Excel-Oberfläche zur Verwaltung der Stammdaten
    • Integration mit Data Quality Services
    • Neues Benutzerinterface
    • Installation ist Teil der SQL Server Installation

    Wie man sieht gibt es also viel zu testen!

    Hier meine Denali-Ressourcen

    Und schließlich die Downloads und anderen Informationen:

    Gruß,
    Steffen

  • Volltextfeatures in SQL Server “Denali” Teil 1: Eigenschaftssuche und NEAR

    In meinem Webcast zu SQL Server “Denali” CTP1 habe ich schon über einige Neuerungen bei der Volltextsuche gesprochen. Bevor ich im nächsten Artikel zu einer wichtigen Neuerung komme, die es in CTP1 noch nicht gab (Semantische Suche) möchte ich hier noch mal eine kleine Zusammenfassung der Neuerungen in der Volltextsuche geben, die bereits in CTP1 enthalten waren:

    Eigenschaftssuche (Property Search)

    Diese Funktion ermöglicht die Suche nach Dokumenteigenschaften (Titel, Autor usw.), insbesondere in Office-Dokumenten. Damit das funktioniert muss zuerst eine Search Property List angelegt werden (mit CREATE SEARCH PROPERTY LIST), die die zu suchenden Eigenschaften enthält. Dazu müssen die Eigenschaften über ihre GUID (die man z.B. aus der MSDN Dokumentation erhält) geladen werden:

    ALTER SEARCH PROPERTY LIST DocumentTablePropertyList

       ADD 'Title'

       WITH ( PROPERTY_SET_GUID = 'F29F85E0-4FF9-1068-AB91-08002B27B3D9', PROPERTY_INT_ID = 2,

          PROPERTY_DESCRIPTION = 'System.Title - Title of the item.' );

    Diese Search Property List wird dann einem Volltextindex zugeordnet:

    ALTER FULLTEXT INDEX ON Production.Document SET SEARCH PROPERTY LIST DocumentTablePropertyList;

    Außerdem müssen natürlich die IFilter für die jeweiligen Dokumenttypen installiert sein, und zwar je nach Serverversion in 32 oder 64 Bit. Die IFilter für die Office 2007/2010 Dateiformate findet man hier (nach der Installation den Server neu starten!). Darüber hinaus muss die Verwendung der IFilter in SQL Server aktiviert werden (EXEC sp_fulltext_service load_os_resources, 1)

    Nach dem Hinzufügen der Eigenschaften wird der Volltextindex neu aufgebaut. Danach kann man nach Dokumenteigenschaften suchen:

    SELECT Document FROM Production.Document

      WHERE CONTAINS(PROPERTY(Document,'Author'), 'Steffen');

    Anpassbares NEAR

    Bisher tat das Prädikat NEAR in der Volltextsuche nicht wirklich das, was man erwartet: Es definierte nämlich lediglich, dass die zwei (oder mehr) Begriffe im selben Dokument vorhanden sein müssen, keineswegs dass sie sich auch tatsächlich in einem bestimmten Abstand zueinander befinden müssen. Lediglich auf den Rang des Dokuments in der Ergebnisliste wirkte sich die Nähe der Suchbegriffe aus.

    In SQL Server Denali kann man jetzt genau festlegen, wie nahe die Suchwörter sein sollen. So wird hier nach “rear” und “left” mit maximal 3 Worten dazwischen gesucht:

    SELECT DocumentNode, DocumentSummary, Document

           FROM Production.Document AS DocTable INNER JOIN

           CONTAINSTABLE(Production.Document, Document, 'NEAR((left, rear), 3)' ) AS KEY_TBL

           ON DocTable.DocumentNode = KEY_TBL.[KEY];

    Es ist auch möglich nach mehr als zwei Begriffen zu suchen, dann gibt die Zahl die maximale Anzahl Nicht-Suchbegriffe zwischen dem ersten und dem letzten Suchbegriff an. Die Reihenfolge der Begriffe im Dokument ist nicht wichtig, kann aber mit einem angehängten TRUE erzwungen werden: NEAR((left, rear), 3, TRUE).

    Performance

    Neben funktionalen Neuerungen in der Volltextsuche wurde auch stark an der Geschwindigkeit und Skalierbarkeit gearbeitet. Ziel ist es, mindestens 100 Millionen Dokumente in einem Volltextindex zu unterstützen. Meine ersten Versuche mit einer Tabelle mit 20 Millionen Zeilen und 19 Volltext-indizierten Spalten waren sehr vielversprechend: ein Satz aus 22 Abfragen hat nur 7-10 Sekunden gebraucht – auf meinem (schnellen) Laptop.

    Wichtig ist dabei die Formulierung der Abfragen. Die Abfrage

    SELECT '"hemoglob*"', COUNT(*) FROM ft_publications WHERE CONTAINS (*, '"hemoglob*"')

    führt zu einem Join zwischen der Basistabelle und dem Volltextindex, was die Abfrage bei großen Ergebnismengen langsam macht. Die inhaltlich gleichwertige Abfrage

    SELECT '"hemoglob*"', COUNT(*) FROM CONTAINSTABLE (ft_publications, *, '"hemoglob*"')

    ist hingegen unabhängig von der Anzahl gefundener Dokumente schnell (auf meinem Rechner im zweistelligen Millisekundenbereich). Das gilt übrigens auch mit früheren Versionen von SQL Server

    Im nächsten Artikel wird es dann um die semantische Suche gehen

    Gruß,
    Steffen

  • FileTable in SQL Server “Denali”–Dateizugriff auf SQL Server Filestream Daten von jeder Anwendung

    Eines der spannenden neuen Features von SQL Server 2008 war Filestream – die Möglichkeit, BLOBs wie Dokumente, Videos oder Bilder unter SQL Server Kontrolle im Dateisystem abzulegen. Mit Filestream kann man gleichzeitig die Datenbankdateien klein halten, die Performance beim Zugriff auf große BLOBs erhöhen und volle Konsistenz zwischen BLOB-Daten und relationalen Daten gewährleisten, sowohl in Transaktionen als auch im Backup.

    Der offensichtliche Nachteil von Filestream in SQL Server 2008 ist aber, dass man mit normalen Anwendungen, die nichts von SQL Server wissen nicht darauf zugreifen kann. Der Zugriff auf Filestream BLOB-Daten musste entweder über T-SQL oder über ein spezielles WIN32 oder .NET API erfolgen. Viele Kunden haben daher nach einer Lösung gefragt, die traditionellen Dateizugriff aus Anwendungen wie Word oder dem Windows Explorer mit SQL Server Features wie vollständige Backups und Volltextsuche kombiniert. Daher gibt es in SQL Server Denali das neue Konzept “Filetable”

    Eine Filetable ist kurz gesagt eine Tabelle mit einem festen Schema, die Dokumente speichert, welche über normalen Windows-Dateizugriff von jedem Windows-Programm aus zugegriffen werden können. Dieselben Dokumente sind also einerseits aus T-SQL als Zeilen einer Tabelle verfügbar, andererseits aus dem Dateisystem als normale Dateien.

    Wenn man Filetables nutzen will muss man zuerst wie gewohnt Filestream aktivieren und eine Filestream-Dateigruppe in der Datenbank anlegen. Diese Filestream-Dateigruppe zeigt auf ein Verzeichnis und legt den physischen Speicherplatz für die Dateien der Filetable fest – nicht jedoch den logischen, über den später aus dem Explorer zugegriffen wird.

    Als nächstes muss man in der Datenbank “nicht-transaktionalen Zugriff” zulassen, entweder komplett oder read only. Das geht in T-SQL:

    ALTER DATABASE SemanticSearch
           SET FILESTREAM (NON_TRANSACTED_ACCESS = FULL, DIRECTORY_NAME = N'SematicsDir')

    oder in der Oberfläche:
    FileTableNonTransactUI

    Die Bezeichnung “nicht-transaktionaler Zugriff” besagt schon worum es geht: Alle Zugriffe auf die Filetable, die aus dem Dateisystem erfolgen (über den Explorer oder über Anwendungen) sind nicht transaktional. Sie können also weder durch ein Rollback rückgängig gemacht werden noch ist ein exakt konsistentes Point-in-Time Restore garantiert. Wichtig ist: Auch bei aktiviertem nicht-transaktionalen Zugriff gilt das nur, wenn die Daten über den Windows Fileshare zugegriffen werden. Jeglicher Zugriff über T-SQL oder das Filestream API ist voll transaktional.

    Nun kann man Filetables anlegen. Das geht derzeit nur in T-SQL (wobei Management Studio eine Vorlage ausgibt bei der man nur noch die Parameter ausfüllen muss):

    CREATE TABLE dbo.MeineFiletable AS FILETABLE

      WITH

      (

        FILETABLE_DIRECTORY = 'MeineFTDir',

        FILETABLE_COLLATE_FILENAME = database_default

      )

    GO

    Wie man sieht ist kein Schema der Tabelle angegeben. Das Schema einer Filetable ist fest, es können weder Spalten hinzugefügt noch geändert oder gelöscht werden. Aber es können zum Beispiel Trigger hinzugefügt werden – und Volltextindizes, aber dazu mehr im nächsten Artikel. Im Filetable Schema sind die Windows Dateieigenschaften (Readonly, Archiv usw) als Spalten vorhanden. Der Pfad (relativ zum Wurzelverzeichnis, das \\maschinenname\instanzname\DIRECTORY_NAME\FILETABLE_DIRECTORY ist) findet sich im Feld path_locator (Typ Hierarchyid), die eigentliche Datei im Feld file_stream. Im Management Studio befinden sich Filetables in einem eigenen Ordner in der Datenbank:

    FileTableUI1

    Von hier aus kann man auch einfach den Dateisystem-Ordner öffnen:

    FileTableUI2

    FileTableUIExplorer

    In diesen Ordner kann man nun ganz normal Dateien hineinkopieren, sie bearbeiten, löschen usw. Aus T-SQL Sicht sieht jede Datei und jeder Unterordner aus wie eine Zeile:

    SELECT name, file_stream.GetFileNamespacePath(), is_directory FROM MeineFiletable

    FileTableOutput

    Den vollständigen Pfad der Dateien erhält man so:

    SELECT  FileTableRootPath() + file_stream.GetFileNamespacePath() AS FilePath FROM MeineFiletable

    Man kann auch ��ber T-SQL Die Einträge bearbeiten, z.B. neue Verzeichnisse anlegen oder Dateien Read Only setzen:

    INSERT INTO MeineFiletable(name, is_directory) VALUES ( 'Analysis Services', 1)


    UPDATE
    MeineFiletable
    SET is_readonly = 1 WHERE name = 'QuoVadis.pptx'

    Zum Verschieben von Dateien muss man sich aber schon ein wenig mit Hierarchyid-Funktionen auskennen (Danke an Georg Urban):

    UPDATE MeineFiletable

    SET    path_locator = path_locator.GetReparentedValue( path_locator.GetAncestor(1),

           (SELECT path_locator FROM MeineFiletable WHERE name = 'Cloud' AND is_directory = 1))

    WHERE (name = 'QuoVadis.pptx')

    Und natürlich kann man auch die eigentliche Datei aus T-SQL bearbeiten.

    Insgesamt bieten Filetables in SQL Server “Denali” eine mächtige Kombination aus T-SQL und klassischem Dateisystem-Zugriff und erlauben die Nutzung von datenbankbasierten Dokumenten von jedem Windows-Programm aus. Filetables werden in der kommenden CTP von SQL Server “Denali” enthalten sein.

    Gruß,
    Steffen

  • Office 365 ist fertig

    Wahrscheinlich hat es jeder schon gehört, aber dennoch:

    Office 365 ist fertig und verfügbar. Es kann unter www.office365.com ab sofort bezogen werden. Testversionen (die nach 30 Tagen in Bezahlversionen umgewandelt werden können) sind auch verfügbar.

    Auch für die Small Business Version kann übrigens Office Professional Plus dazu gebucht werden. Das kostet dann 12,75€/Monat zusätzlich zu den 5,25€/Monat des P1-Plans. Allerdings ist Office Professional Plus (anders als Office 365 selbst) nur als Jahresabonnement erhältlich, nicht auf Monatsbasis. Ab dem E3-Plan von Office 365 für mittelständische und große Unternehmen ist Office Professional Plus sowieso enthalten.

    Für weitere Informationen empfehle ich meine Videoserie

    Gruß,
    Steffen

  • Columnstore Indizes in SQL Server “Denali”

    Eine der wichtigern Neuerungen im Data Warehouse Bereich die mit SQL Server “Denali” kommen wird sind Columnstore Indizes. Diese Indizes können Data Warehouse Abfragen über große Datenmengen sehr stark beschleunigen, oft um den Faktor 10 oder mehr.

    In traditionellen Indizes, auch in Clustered Indizes und Tabellen ohne Index (Heaps) sind die Daten zeilenweise in einer Baumstruktur gespeichert. In den Blättern dieses Baumes stehen also Zeile für Zeile alle Spalten, die im Index enthalten sind. Das geschieht normalerweise unkomprimiert, bei der Verwendung von Datenkompression auch pro Datenseite komprimiert.

    Soll nun, wie in Data Warehouses üblich, eine große Aggregation gebildet werden wie diese:

    SELECT SUM(umsatz_vk_brutto) 
    FROM Artikelbewegung INNER JOIN Artikel 
    ON Artikelbewegung.Art_nr = Artikel.Art_Nr
    WHERE Artikel.Produktgruppe = 'AfG'

    so muss der Index der Faktentabelle Artikelbewegung(sofern er alle benötigten Felder, hier also Art_Nr, VK_Brutto enthält, sonst die ganze Tabelle) über seine Baumstruktur durchsucht und dann zeilenweise gelesen werden um die benötigten Zeilen auszufiltern. Enthält der Index oder die Tabelle mehr Spalten als für die Abfrage benötigt werden so werden diese nicht benötigten Werte ebenfalls gelesen und dann ignoriert. Danach werden die VK_Brutto Werte aufsummiert.

    Bei einem Columnstore Index werden die Daten in hochkomprimierter Form spaltenweise gespeichert. Das bedeutet, dass jede Spalte im Index einzeln gespeichert und komprimiert wird. Durch die in denormalisierten Data Warehouses typische hohe Ähnlichkeit der Werte in einer Spalte werden hier sehr hohe Komprimierungen erreicht. Das bedeutet, dass die von Disk zu lesenden Datenmengen deutlich geringer sind als bei traditionellen Indizes. Bei einer Abfrage werden dann auch nur die in der Abfrage enthaltenen Spalten von der Platte gelesen, was zusätzlich IO und Verarbeitungszeit einspart.

    Die Columnstore Technologie basiert auf derselben Basis (Vertipaq) die derzeit auch schon in PowerPivot verwendet wird.

    Schauen wir uns das Ergebnis der Verarbeitung mal für eine Abfrage an:

    SELECT k.Jahr, f.Einzugsbereich, ar.Produktgruppe, SUM(a.Teile_Ges) Teile, SUM(a.umsatz_vk_brutto) Umsatz
    FROM Artikelbewegung a INNER JOIN Kalender k ON a.Datum = k.Datum
    INNER JOIN artikel ar ON a.Art_Nr = ar.Art_Nr
    INNER JOIN Filialen f ON a.Filial_Nr = f.Filial_Nr
    GROUP BY k.Jahr, f.Einzugsbereich, ar.Produktgruppe
    ORDER BY k.Jahr, ar.Produktgruppe, f.Einzugsbereich

    Ohne Column Store Index wird hier, da die ganze Tabelle aggregiert wird, ein Table Scan gemacht. CSTableScan

    IO-Kosten:

    Artikelbewegung-Tabelle. Scananzahl 9, logische Lesevorgänge 25898

    CPU-Kosten:

    SQL Server-Ausführungszeiten:
    CPU-Zeit = 33413 ms, verstrichene Zeit = 5229 ms

    Mit Column Store Index werden nur die benötigten Spalten in komprimierter Form gelesen, die Tabelle selbst wird nicht gelesen:

    CSColstore

    Schon am geringeren Anteil an den Gesamtkosten der Abfrage sieht man den Effekt des Columnstore. Und auch in Zahlen drückt sich das aus:

    IO-Kosten:

    Artikelbewegung-Tabelle. Scananzahl 8, logische Lesevorgänge 4520

    CPU-Kosten:

    SQL Server-Ausführungszeiten:
    CPU-Zeit = 2103 ms, verstrichene Zeit = 902 ms

    Die Abfrage ist also insgesamt um mehr als den Faktor 5 schneller geworden, hat nur rund 6% (!) der CPU Zeit verbraucht und das Lesen des Column Store hat nur 17% der IO-Vorgänge gebraucht. Das alles bei einer recht kleinen Faktentabelle (nur ca. 4 Millionen Zeilen), bei großeren Tabellen ist der Effekt noch deutlich größer.

    Wichtig ist, dass sich Columnstore Indizes nur für Data Warehouse Szenarien eignen wo große Aggregationen, vor allem Summierungen über große Datenmengen gebildet werden.

    Ein Columnstore Index macht die Tabelle, auf der er erstellt wurde Read Only. Daher gibt es nur zwei Möglichkeiten, Daten in der Basistabelle zu ändern

    1.: Columnstore Index löschen, Daten anfügen, Columnstore Index neu erstellen

    oder

    2. Partitionsumschaltung: Tabelle gleicher Struktur erstellen, Daten laden, Columnstore Index auf neue Tabelle erstellen, neue Tabelle als Partition in vorhandene Tabelle hineinschalten

    Die Syntax für die Erstellung von Columnstore Indizes ist fast dieselbe wie für traditionelle Nonclustered Indizes:

    CREATE NONCLUSTERED COLUMNSTORE INDEX [IX_Artikelbewegung_ColumnStore] ON [dbo].[Artikelbewegung]
    (
        [Datum],
        [Filial_Nr],
        [Art_Nr],
        [Gebinde_Ges],
        [Teile_Ges],
        [Umsatz_VK_brutto],
        [Umsatz_vk_netto]
    )WITH (DROP_EXISTING = OFF) ON [PRIMARY]

    und auch eine schöne Oberfläche gibt es dafür:CSEdit

    Columnstore Indizes werden in der kommenden SQL Server “Denali” CTP enthalten sein. Anmeldungen dafür unter http://www.sqlserverlaunch.com

    Gruß,
    Steffen

  • Private Cloud mit SQL Server – wie geht das?

    clip_image003Cloud Computing ist in aller Munde, und auch wenn die Public Cloud mit Windows Azure und SQL Azure die höchsten Potenziale für Effizienz, Kosteneinsparung und Elastizität bringt entscheiden sich viele Kunden derzeit für den Aufbau einer Private Cloud für ihre Unternehmensanwendungen. Die Gründe dafür sind vielfältig, vom Wunsch, die Daten im eigenen Haus zu behalten über Features, die derzeit in SQL Azure nicht unterstützt werden bis zur Flexibilität, bestehende Anwendungen mit geringen Anpassungen weiter zu betreiben.

    Der Vorteil von SQL Server ist nun, dass den Kunden alle Wahlmöglichkeiten von „keine Cloud“ bis „Public Cloud“ zur Verfügung stehen:

    1. Angepasste Installation auf eigener Hardware
    2. Angepasste Installation in Hyper-V oder einer anderen Virtualisierungsumgebung
    3. Verwendung einer vorkonfigurierten Appliance
    4. Aufbau einer Private Cloud
    5. Nutzung der Public Cloud mit SQL Azure

    In diesem Artikel soll es nun darum gehen, wie ein Private Cloud Projekt mit SQL Server (auch unter dem Titel „Database as a Service“ – DaaS bekannt) aussieht. Dabei geht es mir hier vor allem um den Projektablauf und die einzelnen Schritte. Einen Überblick über die verwendeten Technologien haben Frank Koch und ich bereits im Artikel „Was ist eine Private Cloud und was brauche ich dafür?“ gegeben.

    Ein SQL Server Private Cloud Projekt besteht aus 4 Stufen, die eigene Werkzeuge und Vorgehensweisen erfordern und eigene Vorteile bringen:

    clip_image005

    1. Resource Pooling (Zusammenfassen von Ressourcen)
    2. Elasticity (Elastizität)
    3. Self-Service (Selbstbedienung)
    4. Control & Customize (Überwachung und Anpassung)

    Stufe 1: Resource Pooling

    Beim Zusammenfassen der Ressourcen geht es zuerst einmal darum festzustellen, was eigentlich alles in die Private Cloud konsolidiert werden soll und darauf aufbauend eine konsolidierte virtualisierte SQL Server Umgebung aufzubauen. Als Ergebnis dieser Stufe laufen alle (soweit möglich) verteilten Datenbankinstallationen in einer zentral verwalteten virtualisierten Umgebung und werden dort einheitlich administriert. Das senkt die Betriebskosten, erleichtert den Administratoren die Arbeit und ist die Basis für jede Compliance-Lösung.

    Diese Stufe in vier Teilschritte unterteilen

    1a: Untersuchung der bestehenden Umgebung und Kapazitätsplanung

    Zuerst einmal muss festgestellt werden, welche Datenbanken in welchen Versionen es eigentlich im Unternehmen gibt und welche davon Kandidaten für eine Konsolidierung sind. Dazu gibt es zwei wesentliche Werkzeuge: das „Microsoft Assessment and Planning (MAP) Toolkit 5.5“ und das „Microsoft Consolidation Planning Tool for SQL Server v1.0 (CPT)“.

    clip_image007Mit dem MAP Toolkit kann man vorhandene SQL Server Installationen (und, wenn gewünscht, Oracle, MySQL und Sybase-Installationen) im gesamten Netzwerk erkennen und erhält daraufhin Berichte, die eine umfassende Darstellung der vorhandenen Datenbank-Infrastruktur sowie Konsolidierungsempfehlungen enthalten. Das CPT ist darauf aufbauend ein Excel-Addin, das Konsolidierungsempfehlungen auf Basis des Ressourcenverbrauchs von SQL Server Instanzen gibt. Im Ergebnis dieses Schrittes hat man einen Überblick über die eigene Datenbank-Landschaft und bereits einen Eindruck, welche vorhandenen Datenbanken konsolidiert werden sollen.

    Auf Basis dieser Empfehlungen sollte dann eine Kapazitätsplanung erfolgen: Welche Hardware, Software (für SQL Server empfiehlt sich aufgrund der Lizenzbedingungen häufig eine Enterprise oder Data Center Edition für Konsolidierungen) und Verwaltungswerkzeuge werden benötigt? Wie groß wird meine SQL Server Private Cloud? Zur Vereinfachung der Lösungsplanung wird es bald die „Database Consolidation Reference Architecture“ von Microsoft geben, und im zweiten Halbjahr erscheint die optimierte „Database Consolidation Appliance“ zuerst von HP, später auch von anderen Hardwarepartnern.

    1b. Konsolidierung

    Als nächster Schritt sollte soweit wie möglich die vorhandene Infrastruktur aus verschiedenen SQL Server Editionen und Versionen und anderen Datenbanksystemen auf einen einheitlichen, aktuellen Stand gehoben werden damit später Verwaltung, Patching und Entwicklung auf einer gemeinsamen Basis erfolgen können. Dazu sollten vorhandene SQL Server Installationen mit dem Upgrade Advisor auf eventuelle Kompatibilitätsprobleme untersucht werden. Für andere Datenbanken wie Oracle, MySQL, Sybase oder sogar Microsoft Access kann man mit dem SQL Server Migration Assistant (SSMA) abschätzen, wie hoch der Aufwand für eine Migration auf SQL Server ist.

    1c. Planung der Migration

    Je nach Ergebnis der vorigen Schritte wird nun entschieden, wie mit den vorhandenen Datenbanken umgegangen wird. Es gibt 4 Möglichkeiten für jede einzelne Datenbankumgebung:

    1. Beibehaltung der bestehenden physischen Infrastruktur. Das kann bei sehr stark ausgelasteten Maschinen sinnvoll sein oder wenn vom Hersteller der Anwendung keine Freigabe für andere Betriebsmodelle besteht
    2. 1:1 Überführung der bestehenden physischen Maschine in eine virtuelle Maschine (P2V). Das ist insbesondere dann sinnvoll, wenn kein Upgrade auf eine aktuelle SQL Server Version möglich oder sinnvoll ist oder wenn die Anwendung zwingend eine eigene Betriebssystemumgebung erfordert – in diesem Fall ist evtl. wenigstens ein Upgrade auf ein aktuelles Betriebssystem und eine aktuelle SQL Server Version möglich.
    3. Migration auf eine eigene Instanz in einem virtualisierten SQL Server. Das bietet sich an, wenn eine Anwendung Anforderungen wie besondere Rechte oder eine hohe tempdb-Auslastung hat
    4. Migration auf eine konsolidierte virtuelle SQL Server Instanz. Das ist die geeignete Methode für alle Datenbanken, die keine besonderen Anforderungen stellen und bringt die höchste Effizienzsteigerung mit sich.

    1d Virtualisierung und Verwaltung der Instanzen

    imageHier werden nun tatsächlich die vorher geplanten Schritte umgesetzt und die neue virtuelle Umgebung auf Basis von Hyper-V (empfohlen: Windows Server 2008 R1 SP1 – wegen Dynamic Memory) und System Center Virtual Machine Manager 2008 R2 (SCVMM) erstellt. Die P2V-Migration übernimmt dabei der SCVMM, die Datenbankmigration erfolgt mit SQL Server Mitteln. Zusätzlich sollte ein Überwachungswerkzeug für SQL Server und Windows eingesetzt werden: System Center Operations Manager (SCOM) (siehe unten)

    Als Gesamtergebnis dieses Schritt 1 hat man eine virtualisierte, konsolidierte Umgebung die einheitlich und zentral betrieben und verwaltet wird.

    Stufe 2: Elasticity

    Die nächste Stufe ist es, die Umgebung elastisch zu machen, das heißt, eine dynamische Lastverteilung zwischen den einzelnen Instanzen und somit eine gesteigerte Skalierung zu erreichen. So ganz nebenbei wird dabei auch das Thema Hochverfügbarkeit geklärt.

    Zuerst beschäftigt man sich hier mit dem Thema Hochverfügbarkeit für die einzelnen Datenbanken oder SQL Server Instanzen. Dazu kann SQL Server Clustering (als Guest Cluster in den virtuellen Maschinen) und/oder Database Mirroring eingesetzt werden. Das ermöglicht im Falle eines Fehlers eine schnelle Wiederherstellung ohne Datenverlust.

    imageDarüber hinaus sollte Hyper-V geclustert werden. Das schützt nicht nur vor dem Ausfall eines Servers sondern ermöglicht auch Live Migration der virtuelle Maschinen. Durch Live Migration können virtuelle Maschinen im laufenden Betrieb von einem Hyper-V Host auf einen anderen verschoben werden. Dadurch ist eine schnelle Verteilung der VMs nach aktueller oder prognostizierter Last über verschiedene physische Hosts möglich. Auch ein Upgrade oder Patching des Hosts ist so durch Verschiebung der virtuellen Maschinen auf einen anderen Host deutlich vereinfacht. Bei Verwendung von SCVMM ist auch ein automatisches Load Balancing für eine optimale Performance der virtuellen Maschinen möglich.

    Eine weitere Möglichkeit der Ressourcenoptimierung ist Dynamic Memory in Windows Server 2008 R2 Service Pack 1 Hyper-V. Dynamic Memory ermöglicht die Zuweisung einer Spanne an Hauptspeicher für jede virtuelle Maschine (etwa: 4 GB Minimum, 12 GB Maximum). Der Hauptspeicher wird dann nach aktueller Last und nach Priorität („Memory Weight“) zwischen den VMs verteilt. Für den Einsatz von SQL Server mit Dynamic Memory empfiehlt sich die Vergabe des Rechts „Lock Pages in Memory“ an das Dienstkonto sowie die Beschränkung des maximalen SQL Server Hauptspeichers über die Einstellung „Max Server Memory“.

    Ergebnis dieser Stufe ist eine hochverfügbare, skalierbare virtuelle Umgebung bei der eine Anpassung der Ressourcenzuteilung basiert auf den aktuellen Anforderungen leicht möglich ist.

    Stufe 3: Self Service

    In dieser Stufe wird die zentrale Infrastruktur so gestaltet, dass die Nutzer (Fachabteilungen, andere IT-Abteilungen,…) selbst über ein Self-Service-Portal standardisierte Datenbankressourcen anfordern können. Das entlastet die zentrale IT-Abteilung und ermöglicht für die Nutzer einen deutlich einfacheren und schnelleren Zugang zu den benötigten Datenbanken. Darüber hinaus bringt die Standardisierung hier Effizienzsteigerungen bei der Pflege und Wartung der Umgebung.

    imageZuerst werden Templates (Vorlagen) für die standardisierten Datenbank-Ressourcen im SCVMM erstellt. Wenn später ein Nutzer eine neue Instanz braucht so wird diese direkt aus der Vorlage erstellt. In dieser Vorlage können auch Skripte eingebunden werden, die notwendige Schritte nach einer Provisionierung ausführen (zum Beispiel die Anmeldung bei SCOM für die automatische Überwachung oder die Einrichtung eines Backup-Jobs)

    Die Basis für das Self Service Portal ist der „System Center Virtual Machine Manager Self-Service Portal 2.0”. Auf diesem Portal bekommen die Benutzer Rechte, bestimmte Ressourcen anzufordern und neue SQL Server Instanzen auf Basis der Templates anzulegen oder später auch zu entfernen. Das Portal enthält auch einen Freigabeprozess, über den die IT die Anforderungen freigeben kann.

    Das Self Service Modell kann je nach Anforderung auch deutlich ausgebaut werden. Sollen zum Beispiel Drittsysteme für Konfiguration, Backup, ITIL-Prozesse oder ähnliches angebunden werden so eignet sich System Center Opalis mit seinen Workflows und den vielen Schnittstellen dazu sehr gut. Soll das Deployment von VMs statt aus Templates flexibler erfolgen so lässt sich eine Basisinstallation + automatisches Softwaredeployment mit System Center Configuration Manager (SCCM) einfach umsetzen.

    Als Ergebnis dieser Stufe können Datenbankressourcen einheitlich und schnell provisioniert und genehmigt werden. Das erhöht die Flexibilität für die Nutzer und entlastet die IT-Abteilung.

    Stufe 4: Control & Customize

    In dieser Stufe wird die einheitliche Provisionierung um eine darauf basierende Abrechnung (charge back) und einen standardisierten Betrieb erweitert.

    clip_image009Für die Abrechnung enthält das Self Service Portal ein Chargeback-Modul, über den die verwendeten Ressourcen den einzelnen Kunden verrechnet werden können. Es gibt vorgefertigte Berichte, die die Nutzung belegen. Soll eine detailliertere Abrechnung auf Basis von tatsächlicher Last oder anderen Faktoren wie Kühlung oder Platzverbrauch erfolgen so ist dies über die Partnerlösung vKernel Chargeback möglich.

     

    clip_image011Mit System Center Operations Manager (SCOM) ist schließlich eine einheitliche Überwachung über die gesamte Umgebung möglich, man kann vom Hyper-V Host über die virtuellen Maschinen bis zum SQL Server mit seinen Komponenten die gesamte Umgebung über ein Werkzeug verwalten. Über Management Packs enthält der SCOM produktspezifisches Wissen und von der Produktgruppe oder auch vom Kunden selbst definierte Regeln. Über die „Performance and Resource Optimization (PRO)“ Management Packs können auch erweiterte Empfehlungen ausgesprochen werden, wie zum Beispiel die Aktualisierung der Integration Components oder das Verschieben einer VM auf einen anderen Host.

    Zusammenfassung

    Durch die Implementierung der vier genannten Stufen einer SQL Server Private Cloud kann eine optimierte, skalierbare, zentral verwaltbare, effiziente und agile Datenbankumgebung aufgebaut werden die die IT entlastet und für die Nutzer einen schnellen, standardisierten Self Service ermöglicht. Jede einzelne Stufe bringt bereits für sich implementiert deutliche Vorteile, mit allen 4 Stufen bekommt man eine vollständige integrierte Lösung auf Basis verfügbarer Produkte

    Weitere Informationen, insbesondere ein Überblicksposter und 2 Präsentationen finden sich auf der SQL Server Private Cloud Seite. Eine Demo der fertigen Umgebung werde ich demnächst als Video auf diesem Blog bereitstellen

    Gruß,
    Steffen Krause

  • Neues von der TechEd: Ausblick auf SQL Server “Denali”

    Bei der TechEd Nordamerika gibt es einige wichtige Ankündigungen zu SQL Server. So wurde bekannt gegeben, dass die nächste öffentliche CTP-Version von SQL Server “Denali” im Sommer erscheinen wird. Damit man informiert wird kann man sich hier anmelden.

    Gleichzeitig wurde die Schwerpunkte der Entwicklung von SQL Server Denali zusammengefasst:

    Mission Critical Confidence (also in etwa: Zuverlässig für unternehmenskritische Anwendungen)

    Unter diesem Titel werden die zahlreichen Neuerungen für unternehmenskritische Anwendungen zusammengefasst, wie:See more details

    • Erreichen der erforderlichen 9en (im Sinne von 99.99…% Verfügbarkeit) mit AlwaysOn
    • Geringerer Patch-Aufwand durch Windows Server Core Unterstützung
    • Blitzschnelle Data Warehouse Abfragen mit den spaltenbasierten indizes von Projekt “Apollo”
    • Bessere Security und Compliance Möglichkeiten mit Server Auditing in allen SQL Server Editionen und benutzerdefinierten Serverrollen
    • Umfassende Unterstützung mit Service und Support

    Unter Breakthrough Insight werden umfassende Neuerungen im Business Intelligence Bereich zusammengefasst, wie:See more details

    • Interaktive, webbasierte Berichte und Analysen mir Projekt “Crescent”
    • Zentral verwaltete Self Service BI mit dem BI Semantic Model
    • Vertrauenswürdige, konsistente Daten mit den Data Quality Services
    • Robuste Data Warehouses mit Parallel Data Warehouse und den Referenzarchitekturen
    • Umfassende Neuerungen in den Master Data Services
    • Neue zentrale Paket- und Projektverwaltung für die Integration Services

    Unter dem Titel Cloud on yor Terms wird das einheitliche Spektrum von SQL Server im Data Center über SQL Server Applicances und Private Cloud bis zu Public Cloud mit SQL Azure abgedeckt:

    • Umfassendes Material zum Aufbau von Private Clouds mit SQL Server (auch “Database as a Service” genannt)
    • Skalierung von Geräten über Data Center bis zur Public Cloud
    • Schnell zur produktiven Lösung mit Applicances und Cloud-Angeboten
    • Einheitliche Entwicklung über alle Plattformen mit Projekt “Juneau” und DAC-Paketen
    • Zugriff von verschiedenen Plattformen wie .NET, Java, PHP und C++

    Gruß,
    Steffen

  • SQL Server Migration Assistant für Oracle, MySQL, Sybase und Access in neuer Version 5.0

    Die neue 5.0 Version der SQL Server Migration Assistants (SSMA) für Oracle, MySQL, Sybase und Access ist erschienen. Die wichtigsten Neuerungen sind:

    • Alle SSMA unterstützen nun die Migration nach SQL Server “Denali” (und wie bisher nach 2005, 2008, 2008 R2)
    • Der SSMA für Sybase unterstützt nun auch die Migration nach SQL Azure (wie schon bisher SSMA für MySQL und Access)
    • Jetzt sind auch offiziell nicht-englische Datenbanken unterstützt
    • Die Datenmigration kann jetzt multithreaded arbeiten und ist daher skalierbarer und performanter
    • Das SSMA Extension Pack kann jetzt auch auf geclusterten SQL Instanzen installiert werden
    • Daneben gibt es noch einige weitere Neuerungen in den SSMA für Sybase und Oracle

    Kostenloser Download:

    Wer mehr über die Migration erfahren möchte: Im Rahmen meiner “SQL Server für Ein- und Umsteiger”-Reihe habe ich je einen Webcast zur Migration von Oracle und MySQL gemacht

    Gruß,
    Steffen

  • Machts gut und - Willkommen!

    Microsoft ist eine Firma mit vielen Möglichkeiten. Und nach über 6 Jahren als Technical Evangelist werde ich auch eine dieser Möglichkeiten ergreifen und ab dem 1.5. in den Datenbank-Bereich für Großkunden wechseln. Das gibt mir die Möglichkeit, mich nach Jahren der Breite (SharePoint, Cloud Services, HPC, BizTalk, SQL, BI, Internet Explorer,….) wieder fokussierter um ein Thema (große Datenbanken mit SQL Server, vor allem relational) zu kümmern und dabei auch deutlich intensiver als bisher einzelne Großkunden betreuen. Ich freue mich sehr auf diese neue Herausforderung. Wobei manche Dinge dann doch Konstanten bleiben. Mein erster Vortrag als Evangelist Ende 2004 war bei demselben Kunden, bei dem ich jetzt meinen ersten Termin habe

    Für dieses Blog heißt das: Es wird in Zukunft primär ein SQL Server Blog sein. Doch da mit SQL Server “Denali“ eine sehr spannende neue Version ins Haus steht wird meine Post-Frequenz wohl eher höher werden als bisher. Ich freue mich schon auf Artikel und Videos zur neuen Hochverfügbarkeitslösung AlwaysOn, zu Columnstore Indizes, T-SQL Neuerungen wie Sequences und und und… Und auch SQL Azure wird weiterhin einen wesentlichen Platz einnehmen.

    Nun wird es aber Zeit für einen

    Rückblick

    Ich war jetzt 6,5 Jahre Evangelist, und in dieser Zeit ist wirklich viel passiert. Hunderte von Events, Webcasts, Videos, Blogeinträgen, diverse Presseartikel, Early-Adopter-Projekte. Ich habe nur in 2 deutschen Bundesländern (Mecklenburg-Vorpommern und Thüringen) nicht gesprochen und war Sprecher in den Niederlanden, Belgien, Spanien, Frankreich (OK, geschummelt, das war vor deutschem Publikum), Österreich, der Schweiz, den USA und sogar in Malaysia. Zu Beginn waren Blogs der große Hype, jetzt gibt es Twitter , LinkedIn , Youtube , TechNet Edge , Channel 9 , Quora und Facebook (nein, kein Link, Facebook ist privat). Und doch finde ich die persönliche Kommunikation immer noch sehr wichtig, und die fand auf den Veranstaltungen und bei Community-Treffen (wie die der SQLPASS und der SharePoint Community ) statt.

    Einige dieser Ereignisse sind mir besonders in Erinnerung geblieben. So war der SQL Server 2005 Launch (+VS 2005, BizTalk 2006) in Karlsruhe im Februar 2006 nicht nur mein erstes richtig großes Event, sondern auch die Geburtsstunde einiger Sessions, die ich in aktualisierter Form immer noch halte: BI Plattform (die Data Mining Demo) und SQL Hochverfügbarkeit (mit dem Programm, das das automatische Umschalten zeigt).

    _P5V1400_JPG _P5V1916_JPG

    Der nächste Launch war dann auch das größte Event, auf dem ich je gesprochen habe, und zugleich das einzige Mal, dass ich vor mehr als 3000 Menschen in einem Saal SQL Server präsentiert habe: Frankfurt Messe (Windows Server 2008, SQL Server 2008, Visual Studio 2008). Und dass mein neuer Chef mir hier das Mikrofon hält ist eine schöne Erinnerung ,-)

     074 053

    Auch ein internes Ereignis ist mir sehr in Erinnerung geblieben: Das Company Meeting im „Starlight Express“ in Bochum, wo ich fast allen deutschen Microsoft Kollegen SQL Server Integration Services vorgestellt habe.

    Und schließlich, meine weiteste Dienstreise: TechEd SouthEast Asia in Kuala Lumpur, Malaysia.

    Malaysia 1 003 Malaysia 5 004

    Doch auch viele kleinere Kundentermine sind mir sehr in Erinnerung geblieben, wie eine der ersten HPC Einführungen Deutschlands bei der hhpberlin oder Integration Services mit riesigen Datenmengen bei der Börse Stuttgart .

    Die Zukunft meines Jobs wird sich eher um solche Termine drehen, und leider werde ich über die meisten davon nichts schreiben dürfen (außer der Kunde macht eine Case Study). Aber ich werde weiter interessante Erkenntnisse (ohne Nennung des Kunden) hier schreiben und auch insbesondere der SQLPASS treu bleiben.

    Schließlich haben die vergangenen Jahre auch privat viele Veränderungen gebracht, wobei mein Beruf mir die Stabilität gegeben hat. Von Besinnung auf mich (erst Fitnessclub, jetzt dazu auch Yoga und Meditation) über zwei Umzüge (ins Reihenhaus und dann zur Dachterrasse) bis zum neuen Leben als alleinerziehender Vater. Daher hier mein Dank an die Menschen, die mein Leben bereichert haben und bereichern und mich unterstützt haben und unterstützen, besonders: mein bester Freund, meine Partnerin, meine Kinder, meine Exfrau, meine Eltern und viele mehr.

    Nachtrag: Ich habe hier nur die privaten Unterstützer aufgeführt. Beruflich gab es so viele wunderbare Kollegen, Partner und Kunden dass es zu viel wäre es aufzuführen, daher hier nur: Danke an meinen Manager und meine Teamkollegen sowie an die gesamte DPE.

    Und: Wer jetzt denkt "Da ist doch dann ein Job frei" - der hat Recht. Die erste Stellenausschreibung ist raus: Technology Evangelist (m/w) (Cloud Infrastructure)

    So, und jetzt noch Ostern genießen (heute: Kletterwald mit den Kindern), dann TechDays Belgien und Niederlande und dann Schnellstart in der neuen Rolle.

    Gruß,
    Steffen

  • Office 365 Administration–die Videoserie

    imageAls Vorbereitung für meine Sessions bei der CeBit, beim TechSummit Cloud und bei den TechDays NL habe ich eine Reihe von Videos zu Office 365 aufgezeichnet und diese auf TechNet Edge veröffentlicht. Ziel dieser Reihe ist es, den Administratoren eine Überblick über die ersten Administrationsaufgaben zu geben und eine Schritt-für-Schritt Anleitung für das vielleicht komplexeste Administratiosnthema zu geben: die (optionale) Identity Federation mit einem lokalen Active Directory.

    Als Ergänzung zu dieser Videoserie empfehle ich einige Vorträge, die bereits zum Download verfügbar sind

    Doch hier nun meine Videos:

    Office 365 als Zusammenarbeitsplattform für Office 2010

    Dieses Video beinhaltet ein typisches Zusammenarbeitsszenario. Ich habe es für den Business-Überblick bei der CeBit erstellt um einige Office 365 Funktionen aus Endbenutzersicht zu zeigen.

    TechNet Edge Videodownload | Youtube

    Office 365 Clientcomputer Standalone einrichten

    In diesem Video zeige ich die Basiseinrichtung eines Clientrechners für Office 365. Dieser Rechner braucht kein Domänenmitglied zu sein, und es sind für dieses Szenario keinerlei lokale Server erforderlich

    TechNet Edge Videodownload | Youtube

    Office 365 eigene Domäne einrichten

    Die meisten Kunden wollen als Email-Adresse und Login für Office 365 nicht die mitgelieferte meinedomain.onmicrosoft.com-Adresse verwenden sondern eine eigene Domäne wie meinefirma.de oder intranet.meinefirma.de. In diesem Video zeige ich, wie man das einrichtet

    TechNet Edge Videodownload | Youtube

    Office 365 Single Sign On einrichten (1): ADFS und Verzeichnissynchronisierung

    Wer seine lokalen Active Directory Benutzer auch in Office 365 nutzen will hat 2 Optionen: Entweder nur Verzeichnissynchronisation (das Login erfolgt dann weiterhin mit der Microsoft Online ID) oder Active Directory Federation (das Login erfolgt dann mit dem Active Directory Account, wobei die Online-Dienste nie das Kennwort des Benutzers erfahren). Die Einrichtung von beidem zeige ich in diesem Video

    TechNet Edge Videodownload | Youtube

    Office 365 Single Sign On einrichten (2): ADFS Proxy und SSL Zertifikate einrichten

    Damit sich die Benutzer auch von außerhalb des eigenen Firmennetzes per ADFS anmelden können (und zumindestens in der Beta für Outlook: Damit sie sich überhaupt anmelden können) benötigt man einen aus dem Internet zugreifbaren ADFS Proxy. Und für diesen wiederum benötigt man ein gültiges SSL-Zertifikat. Wie man beides einrichtet zeige ich in diesem Video

    TechNet Edge Videodownload | Youtube

    Office 365 Single Sign On einrichten (3): Client-Einrichtung in der Domäne

    Zum Abschluss und als Beweis, dass die Identity Federation funktioniert zeige ich noch die Einrichtung eines Clientrechners, der ein AD-Domänenmitglied ist und wo sich der Benutzer über die Federation bei den Online Services anmeldet

    TechNet Edge Videodownload | Youtube

    Bei allem ist noch zu bemerken, dass sich Details der Oberfläche und des Verhaltens im Verlauf der Office 365 Beta noch ändern können

    Viel Spaß mit Office 365 wünscht
    Steffen

  • DevConnections im Juni in Karlsruhe – Fachkonferenz für Entwickler und IT Professionals

    Weltweit bekannte Technologie-Experten wie Juval Lowy, John Papa oder Kimberly L. Tripp – und ich - geben anlässlich der DevConnections, die Teil einer internationalen Veranstaltungsreihe ist, am 9. und 10. Juni 2011 in Karlsruhe ihr Wissen rund um die Technologieplattform von Microsoft weiter. Unter dem Motto "The Conversation Begins Here“ können Teilnehmern der Fachkonferenz zukünftige Technologien kennenlernen, detailliert in aktuelle Technologien einsteigen sowie Probleme und Fragen diskutieren.

    clip_image002

    Die Agenda der DevConnections setzt sich aus acht verschiedenen thematischen Tracks für Entwickler und IT Professionals zusammen. Mit dabei in Karlsruhe sind Themenblöcke zu ASP.NET, Exchange, SharePoint Administration, SharePoint Development, Silverlight, SQL Server, Visual Studio und Windows. Neben den technischen Vorträgen dürfen sich die Teilnehmer auch über drei Keynotes von Dave Mendlen (Senior Director Developer Platform and Tools), Steve Fox (Director Developer and Platform Evangelism for SharePoint) und Scott Guthrie (Corporate Vice President .NET Developer Platform) freuen.

    Zusätzlich findet im Vorfeld der Konferenz am 8. Juni ein separater Tag mit acht verschiedenen Ganztages-Workshops zu den einzelnen Themenbereichen statt.

    Die Teilnahmegebühr für die zweitägige Konferenz liegt bei 1.199 Euro zzgl. MwSt. Wer sich bis zum 13. Mai 2011 anmeldet, kann immerhin noch gute 200 Euro mit dem Early Bird-Tarif sparen.

    Die Teilnahme am Workshop-Tag kostet 499 Euro zzgl. MwSt. Auch hier besteht die Möglichkeit, bei einer Anmeldung bis zum 13. Mai mit dem Early Bird-Tarif 150 Euro zu sparen.

    Ich werde 2 Sessions halten: Office 365 Überblick und Datenbank benutzen ohne Datenbank installieren: SQL Azure (incl. Sync Services und SQL Azure Reporting)

    Weitere Informationen unter: http://www.devconnections.com/germany/

    Gruß
    Steffen

  • CeBIT 2011: Office 365, SQL Azure und bei der PASS SQL Server “Denali”

    Die CeBIT ist im Anmarsch, und somit auch meine Vorträge. Da dieses Mal der Schwerpunkt des Microsoft-Messeauftritts das Thema Thema Cloud Computing ist halte ich auch vor allem Cloud-Vorträge.

    Auf der Microsoft-Bühne genannten großen Bühne gibt es täglich drei Mal täglich je 20 Minuten lang Office 365 im Überblick. Hier geht es vor allem um die Frage: Wie kann die Produktivität der Mitarbeiter durch die in Office 365 enthaltenen Serverprodukte (Exchange, SharePoint, Lync) erhöht werden ohne dass die IT-Abteilungen selbst diese Server installieren und betreuen muss? Die Demo aus diesem Vortrag habe ich schon mal hier veröffentlicht.

    Der Vortrag ist Di-Fr jeweils 10:00, 14:00 und 17:40, Samstag 13:20. Ich übernehme: Di 10:00, Mi 10:00, Do 14:00, Fr 10:00 und 17:40 und Sa 13:20, den Rest macht der Produktmanager Office 365 Florian Müller

    Im TechNet/MSDN Vortragsraum gebe ich einen deutlich technischeren Überblick zu Office 365, der sich an Administratoren richtet, und zwar Di 14.30, Mi 15:00, Do 14:30, Fr 11:00 und Sa 10:30. Daneben hält Daniel Melanchthon auch einen Vortrag zu Office 365 Administration und Sicherheit

    Außerdem spreche ich im TechNet/MSDN Vortragsraum unter dem Titel “Datenbank nutzen ohne Datenbank zu installieren?” über das Thema SQL Azure, inklusive SQL Azure Reporting und SQL Azure Sync Services. Die Vorträge (je 30 Minuten) sind Di 13:30, Mi 14:00, Do 9:30, Fr 14:00 und Sa 15:30

    Das gesamte Microsoft Vortragsprogramm ist hier. Und wer mit mir einfach mal so reden will, auch über andere Themen, der ist gern nach meinen Vorträgen willkommen.

    Am Vorabend der CeBIT findet mein traditioneller Besuch bei der  PASS Regionalgruppe Hannover/Göttingen statt. Dort ist mein Thema SQL Server “Denali” und die Neuerungen in der öffentlichen CTP. Allerdings werde ich es wegen der Proben auf der CeBIT nicht pünktlich zu 18:30 Uhr schaffen.

    Schließlich findet man mich beim Community-Treffen am Freitag Abend und am Samstag, dann mit einem längeren Vortrag zu Office 365

    Viel Spaß auf der CeBIT wünscht

    Steffen

  • SQL Azure Reporting Services Februar CTP

    Mit den SQL Azure Reporting Services ist zum ersten Mal eine der Business Intelligence Komponenten von SQL Server als Cloud-Dienst verfügbar. Die Einladungen für die ersten interessierten Kunden sind raus, weitere Einladungen folgen in einigen Wochen. Jeder der möchte und ein WIndows oder SQL Azure Abo hat kann sich über den Reporting-Link im Azure Developer Portal anmelden.

    SQL Azure Reporting basiert auf der gleichen Berichts-Engine wie SQL Server Reporting Services und ermöglicht dadurch, vorhandene Berichte sehr einfach in die Cloud-basierte Berichtsplattform zu übernehmen und mit den bekannten Werkzeugen wie BI Development Studio neue Berichte zu entwickeln.

    Die erste Version von SQL Azure Reporting ist vor allem für die Erstellung von Berichten gedacht, die auf SQL Azure als Datenquelle beruhen. Andere Datenquellen werden anfänglich nicht unterstützt. Allerdings werden die Azure Cloud-Services deutlich häufiger aktualisiert und um neue Features ergänzt als das bei einem Produkt wie SQL Server möglich ist. Derzeit werden ca. alle 4-5 Monate neue Funktionalitäten zu Windows Azure, SQL Azure und verbundenen Technologien hinzugefügt, und es ist damit zu rechnen, dass das auch in Zukunft mit SQL Azure Reporting der Fall sein wird.

    SQL Azure Reporting unterstütz den vollen Satz von Visualisierungen, die auch in SQL Server 2008 R2 unterstützt werden, darunter Landkarten, Tablix und die verschiedenen Arten von Charts und Sparklines. Ebenso werden die verschiedenen Export-Formate für Berichte unterstützt. SQL Azure Reporting Berichte können also per Klick oder programmatisch nach Word, Excel, PDF oder in andere Formate exportiert werden. Ebenso entspricht die Darstellung des Berichts im Webbrowser genau dem, was die Benutzer von SQL Server Reporting Services gewohnt sind:

    AzureReporting02

    Auch für Entwickler bleibt vieles genauso, wie sie es gewohnt sind. Die Entwicklungsumgebung ist wie gehabt BI Development Studio, die Designer sind dieselben, die Sie bereits kennen. Berichte aus SQL Azure Reporting können wie gewohnt im Report Viewer Control, das für Windows- und für Web-Programmierung verfügbar ist, in eigenen Programmen dargestellt werden. Und auch das SOAP Web Services API ist das gleiche mit dem Entwickler heute schon arbeiten.

    Die Verwaltung von SQL Azure Reporting erfolgt über das neue Azure Developer Portal (https://windows.azure.com/), einen klassischen Report Manager gibt es ebenso wie eine SharePoint-Integration nicht. Dadurch ist die komplette Verwaltung einer Anwendung, bestehend aus einer Windows Azure Webanwendung, einer SQL Azure Datenbank und darauf beruhenden SQL Azure Reporting Berichten aus einer einheitlichen Oberfläche möglich. In der aktuellen CTP gibt es im Portal aber nur die absolutne Basisfunktionen:

    AzureReporting01

    Mehr Details zu SQL Azure Reporting gibt es in meinem Artikel in der Database Pro, die Anfang März erscheint. Wer bis dahin schon mal SQL Azure und Windows Azure testen möchte kann das 3 Wochen kostenlos (und ohne Angabe einer Kreditkarte) hier tun. Und wer ein MSDN Abo hat bei dem ist Windows Azure eh enthalten, er muss es nur freischalten

    Gruß,
    Steffen

  • Für Softwarehersteller: Einstieg leicht gemacht mit SQL Server 2008 R2 und SharePoint 2010

    Microsoft Platform Ready ist die neue Plattform für Softwarehersteller weltweit, auf der zu aktuellen Microsoft-Technologien, Ressourcen, Veranstaltungen, Kompatibilitätstests, Vertriebs- und Marketingunterstützung zusammengefasst werden.

    In Deutschland bieten wir Ihnen im Frühjahr 2011 im Rahmen von MPR vier neue Veranstaltungen zu den Themen SQL Server 2008 R2 und SharePoint 2010 an. Und damit Sie auch die Informationen erhalten, die Sie in Ihrer Rolle in Ihrem Unternehmen benötigen, haben wir die Veranstaltungen aufgeteilt in Briefings für Geschäftsführer und IT-Leiter sowie in Camps für technische Leiter sowie Entwickler.

    Für weitere Informationen, Agenda und zur Anmeldung folgen Sie den einzelnen Links:

    o Briefing für SharePoint 2010 am 07.02.2011 in Unterschleißheim

    o Briefing für SQL Server 2008 R2 am 09.02.2011 in Köln

    o Camp für SharePoint 2010 am 08.03.2011 in Köln

    o Camp für SQL Server 2008 R2 am 14.03.2011 in Unterschleißheim

    Gruß,
    Steffen

  • Neues Forum für SQL Azure

    Es gibt jetzt ein MSDN Forum für SQL Azure:

    · http://social.technet.microsoft.com/Forums/de-de/sqlazurede/threads

    Gruß,
    Steffen

  • Wieder verfügbar: SQL Server Grundlagen für Administratoren Webcast-Serie

    Nachdem sie eine Weile verschwunden war ist meine SQL Server Grundlagen für Administratoren-Webcastserie nun wieder verfügbar. Hier die Links:

    TechNet Webcastreihe: SQL Server Grundlagen (Teil 1)
    Installation, Konfiguration, Planung (Level 200)

    TechNet Webcastreihe: SQL Server Grundlagen (Teil 2)
    Administrationswerkzeuge (Level 200)

    TechNet Webcastreihe: SQL Server Grundlagen (Teil 3)
    Backup und Restore (Level 200)

    TechNet Webcastreihe: SQL Server Grundlagen (Teil 4)
    Wartungsaufgaben (Level 200)

    TechNet Webcastreihe: SQL Server Grundlagen (Teil 5)
    Hochverfügbarkeit (Level 200)

    TechNet Webcastreihe: SQL Server Grundlagen (Teil 6)
    Anwendungen: SharePoint und andere (Level 200)

    Die Links zu den Entwickler- und SQL Express-Themen sind hier (jetzt auch inklusive der zwei: Reporting Services Teile)

    Gruß

    Steffen

  • SQL Server “Denali” CTP 1 verfügbar–was ist neu?

    Denali_MtnVorige Woche wurde auf der PASS Konferenz und der TechEd Europe die Verfügbarkeit der ersten Community Technical Preview (CTP1) der nächsten Version von SQL Server mit dem Codenamen “Denali” bekannt gegeben.

    Da stellt sich natürlich die Frage: Was ist neu? Bevor ich aber auf die Neuerungen in der CTP1 eingehe ein paar Worte zum SQL Server Entwicklungszyklus: Seit SQL Server 2008 ist die SQL Server Entwicklung in viele einzelne Zweige (Branches) aufgeteilt, in denen jeweils die einzelnen Neuerungen relativ unabhängig voneinander entwickelt werden. Das hat den Vorteil, dass die jeweiligen Entwicklungsteams eigenständig arbeiten können, bis ihr Code (das “Improvement”) stabil und funktional ist. Erst dann, wenn das jeweilige Feature nahezu fertig ist wird es in den “Main Branch” eingecheckt, aus dem auch die CTP-Versionen stammen.

    Für die CTP1 hat dieses Entwicklungsverfahren nun zwei Folgen: 1. Vieles was neu sein wird ist in der CTP1 noch nicht enthalten. So gibt es noch keine Neuerungen  in Analysis Services oder Reporting Services, denn diese beiden Teams hatten ja viele Neuerungen im erst im Mai erschienenen SQL Server 2008 R2. 2. Das, was drin ist gilt als stabil und kann auf Herz und Nieren geprüft werden. Daher ist dieser Artikel auch in “In CTP1 enthalten” und “Nicht in CTP1 enthalten” aufgeteilt

    In CTP1 enthalten

    Relationale Datenbank

    Hochverfügbarkeit: Eine der Wichtigsten Neuerungen in Denali wird die neue Hochverfügbarkeitslösung “AlwaysOn” sein. Bisher gab es verschiedene Hochverfügbarkeitslösungen in SQL Server: Cluster (ausschließlich mit Shared Storage), Database Mirroring und Log Shipping als die Wichtigsten. Mit AlwaysOn in Denali werden diese Lösungen nun sowohl vereinigt als auch erweitert:

    imageDie Basis von Denali AlwaysOn ist die Hochverfügbarkeitsgruppe (Availability Group). In einer Availability Group werden eine oder mehrere SQL Server Datenbanken hochverfügbar gemacht (ein gemeinsames Failover mehrerer Datenbanken ist also ohne Probleme möglich). Das ist sowohl mit Shared Storage (also wie ein bisheriger Cluster) als auch mit Non Shared Storage (wie bei Database Mirroring) möglich, und bei Non Shared Storage asynchron oder synchron (CTP1 nur asynchron). Bei Non Shared Storage hat man also mehrere Kopien (Replicas – Repliken) der Datenbank (in CTP1 ist nur eine Replica möglich). Diese Repliken können im Gegensatz zu Database Mirroring auf Wunsch lesbar gemacht und so zum Beispiel  für Reporting verwendet werden. Als Basis für die Availability Groups werden die Windows Clusterdienste verwendet, alle Maschinen befinden sich im selben Windows-Cluster. Auch dafür ist aber keine Shared Storage erforderlich, und die einzelnen Clusterknoten können sich in verschiedenen IP-Subnetzen (und sogar auf verschiedenen Kontinenten) befinden. In Summe ermöglicht AlwaysOn sehr flexible Hochverfügbarkeitslösungen je nach Verfügbarkeitszielen des Kunden

    Mit “Contained Databases” wird das Verschieben von Datenbanken mitsamt der abhängigen Objekte deutlich vereinfacht. Das ist sowohl für Hochverfügbarkeit als auch für Entwicklung/Test/Produktions-Zyklen sehr vorteilhaft. In einer Contained Database sind neben der eigentlichen Datenbank auch Benutzer enthalten (die keine Logins in master benötigen) oder auch temporäre Objekte, die direkt in der Contained Database gespeichert werden.

    Auch in Transact SQL gibt es einige Neuerungen. So bieten Sequences die Möglichkeit, Zahlenfolgen (z.B. für einen Primärschlüssel) außerhalb einer Tabelle transaktional konsistent zu erzeugen.

    Mit der OFFSET Klausel kann man bestimmte Bereiche eines Ergebnisses abfragen, zum Beispiel um die Ergebnisse einer Abfrage seitenweise darzustellen. So holt diese Anweisung Zeilen 11-20 aus einer Tabelle:

    SELECT DepartmentID, Name, GroupNameFROM HumanResources.Department ORDER BY DepartmentID OFFSET 10 ROWS FETCH NEXT 10 ROWS ONLY;

    Die Volltextsuche unterstützt jetzt Dateieigenschaften (z.B. Titel und Autor von Office-Dokumenten) und ermöglicht eine detaillierte Angabe innerhalb der Near-Klausel (also: alle Dokumente, wo “SQL” und “Denali” innerhalb von 3 Wörtern vorkommen)

    Die geografischen Datentypen unterstützen jetzt die ganze Erde (bisher musste ein Objekt immer innerhalb einer Halbkugel sein) sowie Kreisausschnitte.

    Integration Services

    Die SQL Server Integration Services haben die größte Überarbeitung seit SQL Server 2005 erfahren.

    So gibt es jetzt Projekte, die zusammengehörige Pakete zusammenfassen und eine gemeinsame Konfiguration ermöglichen. Diese Projekte können auch gemeinsam auf dem Zielsystem installiert werden. Wichtigstes Deployment-Ziel ist dabei der neue Integration Services Dienst, der eine zentrale Verwaltung und Ausführung von Integration Services Projekten und Paketen direkt auf dem Server ermöglicht.

    Die Object Impact and Data Lineage Analysis sowie der zugehörige Dependency Designer ermöglichen eine Nachverfolgung der Folgen von Änderungen an Datenquellen und Paketen (wie der Änderung eines Spaltennamens)

    Der Package Designer hat viele Änderungen erfahren, wie ein neuer Connection Designer,  die Möglichkeit der Bearbeitung bei getrenntem Input, einen besseren Mapper, der auch bei großen Spaltenzahlen übersichtlich ist, und eine Undo-Funktion.

    Darüber hinaus gibt es zahlreiche Performanceverbesserungen, vor allem bei Merge und Merge join Transformationen

    Was kommt nach CTP1?

    Relationale Engine

    Neben der Ergänzung der fehlenden Komponenten von AlwaysOn ist vor allem der Column Store Index (Codename “Apollo”) zu nennen. Damit kann man spaltenbasierte hochkomprimierte Indizes erstellen, die besonders bei Aggregationen in Data Warehouse Abfragen enorme Performanceverbesserungen ermöglichen. Die spaltenbasierte Engine, die hier verwendet wird ist schon aus PowerPivot für ihre Geschwindigkeit bekannt.

    Bei den Tools wird es viele Neuerungen geben. So wird als Basis Visual Studio 2010 verwendet und die Tools werden (unter dem Codenamen “Juneau”) viele Funktionen sowohl für die relationale als auch für die BI-Entwicklung hinzugewinnen.

    Mit Filetables wird es möglich sein, auf in Filestream gespeicherte Tabellen auch über ganz normale Fileshares und mit Programmen zuzugreifen, die nichts von SQL Server wissen.

    Analysis Services

    Unter dem Namen “BI Semantic Model” wird eine deutlich erweiterte Vertipaq- Engine (bisher in PowerPivot) auch in Analysis Services Einzug halten. Dies ermöglicht neben der extrem hohen Performance der VertiPaq Engine auch die deutlich einfachere Erstellung von nicht allzu komplexen Analysis Services Projekten. Mehr zur Positionierung findet sich hier: http://bit.ly/9xZhEr

    Reporting Services

    Die Wichtigste Neuerung ist hier das Projekt Crescent, eine webbasierte Anwendung zur einfachen Erstellung und Benutzung von visuell sehr ansprechenden Berichten:

    vlcsnap-2010-11-15-18h21m43s25

     

    Schließlich wird es mit den Data Quality Services eine neue Komponente zur Prüfung und Verbesserung der Datenqualität geben, die sich sowohl in Integration Services als auch eigenständig verwenden lässt.

    Am 02. Dezember, 15:30-16:30 werde ich in einem Webcast einen Überblick über “Denali” CTP1 geben. Die Anmeldung wird demnächst hier möglich sein

    Der Download der CTP1 findet sich hier, die Dokumentation hier

    Gruß,
    Steffen