Category: "In-Memory OLTP / XTP, HTAP"
SQL Server 2016 – the Security & Performance Release / ein Sicherheits- und Performance-Release
May 31st
(DE) |
(EN) |
Die Schlüsselfeatures sind demnach: Always Encrypted Mit diesem Feature ist es endlich möglich, eine Datenverschlüsselung anzubieten, bei der SQL Server selber keinen Zugriff auf die Daten im unverschlüsselten Zustand hat – und auch ein Datenbankadministrator Daten nicht entschlüsseln kann. Der Schlüssel wird hierbei in der Applikation bereitgehalten, wo die Verschlüsselung und Entschlüsselung stattfindet. Das war bisher nur mit eigenen Entwicklungen möglich. |
Its key features are: Always Encrypted With this feature it is finally possible to offer encrypted data where SQL Server itself does not have access to the data in unencrypted form and where the database administrator is incapable of decrypting the data. The key is held within the very application where the encryption and decryption takes place. Up to now encryption/decryption was only possible if users developed solutions on their own. |
Stretch Database Stretched Tables bieten die Möglichkeit, innerhalb einer Tabelle Daten sowohl On-Premise als auch in der Cloud zu halten. Ähnlich wie bei Partitionierung wird hier transparent für die Applikation ein Teil der Daten nach Microsoft Azure ausgelagert, und nur dann geladen, wenn nötig. – Hier sollte man also sicherstellen, mit ungünstigen Abfragen keine Index-Scans in die Cloud zu verursachen. |
Stretch Database Stretched Tables offer the option to store data in a given table both On-Premise and in the Cloud. Similar to partitioning, part of the data will be swapped to Microsoft Azure, transparently to the application, and only accessed when necessary. Here it might be advisable to avoid causing index-scans to the cloud with badly designed queries. |
Um die Daten zu schützen funktionieren Stretched Tables auch im Zusammenspiel mit Always Encrypted. Es bleibt abzuwarten, wie dieses Feature die Hemmungen, Daten in die Cloud zu geben, beeinflusst. Microsoft selber hat jedenfalls sicherlich kein Interesse daran, den Zugang zu seinen Systemen für Geheimdienste zu vereinfachen, und Always Encrypted dürfte ein klares Signal sein. |
To protect the data, Stretched Tables also work together with Always Encrypted. It remains to be seen, how this feature affects the inhibition to give data to the cloud. Microsoft itself surely has no interest to make access to its systems simple for intelligence, and Always Encrypted should be a clear signal. |
Real-time Operational Analytics & In-Memory OLTP Unter diesem Feature verbirgt sich die Verheiratung der beiden „Performance-Killer“ Features Columnstore Indexe – für OLAP-Szenarien – und Memory Optimized Tabellen für In-Memory OLTP. Das heißt damit sind performante analytische Abfragen auf den frischen OLTP Daten in In-Memory möglich. In meinen Augen ist dieses Feature der Killer überhaupt, da Indexe auf den Tabellen direkt synchron sein müssen, und nicht, wie bei manch anderem Anbieter von In-Memory Datenbanken, erst mit Verzögerung die Daten erhalten. Auf dem PASS Summit 2014 war dieses Feature bereits kurz zu sehen, jedoch erst jetzt ist es offiziell und hat einen Namen. |
Real-time Operational Analytics & In-Memory OLTP Under this feature lies the marriage of the two „performance-killer“ features Columnstore Indexes – for OLAP-Scenarios – and Memory Optimized Tables for In-Memory OLTP. This enables for fast analytical queries on the fresh OLTP data in In-Memory. In my eyes this feature is the ultimate killer, since indexes on the tables have to be synchronous and not, like at some other vendors of In-Memory databases, only receive the data after a certain delay. At PASS Summit 2014 this features was already biefly presented, but only now it is official and has a name. |
Das waren die Highlights, jedoch ist die Liste der weiteren neuen Features noch lang, und auch diese haben es in sich. Ich versuche, die wichtigsten einmal aufzulisten: |
Those were the highlights, but the list of further new features is still long and highly potential. I try to list the most important ones: |
Verbesserungen zu Columnstore Indexes
|
Improvements to Columnstore Indexes
|
Verbesserungen für In-Memory OLTP
|
Improvements for In-Memory OLTP
|
Und weitere neue Security-Features: Dynamic Data Masking Damit lässt sich, basierend auf Policies, definieren, dass je nach User bestimmte Daten nur maskiert angezeigt werden. |
And further new Security-Features: Dynamic Data Masking Based on Policies allow to define that depending on the user certain data is only shown maked. |
Row-Level Security Row-Level Security (RLS) ist um genau zu sein ein Feature um die Entwicklung von Zeilenbasierten Zugriffsmechanismen wesentlich zu vereinfachen und aus der Applikation in die Datenbank zu verlagern. In der jetzigen Implementation ist es noch recht einfach, über Side-Channel Attacken dennoch an die Daten heranzukommen. Daher muss man, wie eigentlich immer bei Sicherheits-Design, alle Bestandteile der Applikation im Blick haben. Warum eine wirklich sichere Zeilenbasierte Zugriffskontrolle nicht so trivial ist, kann man unter anderem in diesem Blog-Post von mir nachlesen: |
Row-Level Security Row-Level Security (RLS) is, to be exact, a feature to greatly simplify the development of row-based access-control, and move from the application into the database. In the current implementation it is still quite easy, to get via Side-Channel Attacks to the data. Therefore, as always when designing for security, one has to have an eye on all parts of the application. Why a truly secure row-based access control is far from trivial, one can find out among others in this blog-post of me: |
SQL Server Row- and Cell-Level Security – Disclosure vulnerability
Weitere Features in verschiedenen Bereichen: PolyBase Abfragen von relationalen und Nicht-relationalen Daten in Hadoop-Clustern mit T-SQL über sogenannte External Tables. |
Further features in different areas: PolyBase Querying of relational and non-relational data in Hadoop-Clusters with T-SQL via so-called External Tables. |
Query Store Dieses Feature wurde schon mehrere Male von Conor Cunningham auf verschiedenen Konferenzen angedeutet. Jetzt kommt es wirklich. |
Query Store This feature has been presented several times at different conferences by Conor Cunningham. Now it is finally coming into the product. |
Live Query Statistics Im SQL Server 2016 erwecken Ausführungspläne „zum Leben“. Das lässt sich am besten mit einem Bild/Video veranschaulichen: |
Live Query Statistics In SQL Server 2016 query plans „come to live“. This is illustrated best with a picture/video: |
Temporal Tables Mit Temporal Tables werden Daten automatisch versioniert und stehen später für Abfragen nach Zeitraum der Gültigkeit zur Verfügung. Ähnlich, wie man es für Slowly Changing Dimensions/SCDs (Langsam veränderliche Dimensionen) in Datawarehouses selber oft entwirft. |
Temporal Tables With Temporal Tables data is automatically versioned and available for later querying based on time-span of validity. Similar to how one often designs oneself manually for Slowly Changing Dimensions/SCDs in Datawarehouses. |
Trace Flag 4199, welches seit SQL Server 2005 SP3 CU 6 für alle SQL Server Installationen relevant ist, da es diverse Fixe des Query Prozessors erst aktiviert soll mit dem SQL Server 2016 kaum noch nötig sein. Warten wir auf Details, um das beurteilen zu können. |
Trace Flag 4199, which is relevant for all SQL Server Installations since SQL Server 2005 SP3 CU 6, since it enables certain fixes of the query processor is supposedly mainly unnecessary for SQL Server 2016. Let’s wait for details for a final judgement. |
Multiple Tempdb Datendateien Bei der Installation wird direkt nachgefragt, wie viele TempDB Datendateien angelegt werden sollen. Standardmäßig wird hier die Anzahl der Cores mit einem Maximum von 8 verwendet. Damit werden auch weniger versierte Administratoren auf die Thematik von Latch-Contention in der Tempdb aufmerksam, und eine wichtige Best Practice wird damit standardmäßig angewandt. |
Multiple Tempdb Data Files Already at Setup one has to specify how many TempDB data files will be created. By default the number of cores with a maximum of 8 will be used. BY that that also less experienced administrators will become aware of Latch-Contention in Tempdb, and an important Best Practice is applied by default. |
Hochverfügbarkeit
|
High Availability
|
T-SQL
|
T-SQL
|
|
|
Analysis Services · Paralleles Processing (Aufbereiten) für multiple Table Partitions in Tabular Modellen · Neue DAX Funktionen |
Analysis Services · Parallel Processing for multiple Table Partitions in Tabular Models · New DAX Functions |
Integration Services · AlwaysOn-Unterstützung für die SSIS-DB · Inkrementelles Deployment von Paketen |
Integration Services · AlwaysOn-support for SSIS-DB · Incremental Deployment of packages |
Reporting Services Reporting Services sollen endlich CSS-Stylesheets erhalten – darauf haben wir schon lange lange gewartet. (Damit wird dann auch endlich meine vielfach eingesetzte Technik mit SQL-Tabellen obsolet) Auch sollen die Berichts-Parameter verbessert werden und Hierarchien und Autocomplete erhalten. Weiteres: · High DPI (Dots Per Inch) Skalierung und Geräte für bessere Auflösung von Report-Elementen · Diverse kleine Verbesserungen für Abonnements |
Reporting Services Reporting Services will finally get CSS-Stylesheets – for that we waited a long long time. (With that finally my often used Technique with SQL-Tables will become obsolete) Also the Report parameters will be improved and support Hierarchies and get Autocomplete. Further: · High DPI (Dots Per Inch) Scaling and devices for better reolution of report elements · Various minor improvements for subscriptions |
Master Data Services Im Wesentlichen Performance Steigerung durch Datenkomprimierung und ein neues Super User-Konzept |
Master Data Services In essence: Performance improvements through data compression and a new Super User-concept |
Weiteres: · „Ongoing preview updates“ – dahinter verbirgt sich die Möglichkeit, nach der Installation der CTP2 ohne neuere Installationen einfach per Update neue Funktionen online zu erhalten · Azure SQL Data Warehouse · Mit dem Erwerb von DataZen sollen sich auch für mobile Geräte optimierte Reports anbieten lassen |
Further: · „Ongoing preview updates“ – behind this term lies the possibility, to receive new functionalities online without new installations after the installation of CTP2 · Azure SQL Data Warehouse · With the aquisition of DataZen it will be possible to serve reports which are optimized for mobile devices |
SQL Server 2016 CTP2 Die CTP2 des kommenden SQL Server, die viele der hier vorgestellten Features bereits enthält, steht seit 27. Mai hier zum Download bereit: |
SQL Server 2016 CTP2 The CTP2 of the upcoming SQL Server, which already contains many of the features I introduced here, is available for download since May 27th here: |
www.microsoft.com/en-us/server-cloud/products/sql-server-2016/default.aspx
Weiterführende Links: // Further Readings:
What's New in Analysis Services
What's New in Integration Services
What's New in Reporting Services
What's New in Master Data Services
Columnstore Indexes – part 54 (“Thoughts on upcoming improvements in SQL Server 2016″)
I am personally very excited about this upcoming release and hope you are looking forward to it, too
Andreas
My conference-sessions in 2015: from Extended Events over In-Memory to Security
May 25th
(en) The year started really great with the German SQL Server Konferenz in Darmstadt with 2 sessions on In-Memory OLTP in SQL Server 2014 – one of them being even a full-day PreCon, which I co-presented with Niko Neugebauer, who was talking about Clustered ColumnStore Indexes. |
(de) Das Jahr begann gleich großartig mit der Deutschen SQL Server Konferenz in Darmstadt mit 2 Sessions zu In-Memory OLTP in SQL Server 2014 – eine davon sogar eine ganztägige PreCon, welche ich mit Niko Neugebauer co-präsentierte, der über Clustered ColumnStore Indexe sprach. |
PreCon: “In-Memory Internas: Clustered Columnstore & In-Memory OLTP Deep Dive”
Session: “In-Memory OLTP für Entwickler“ (In-Memory OLTP for Developers)
In March I was happy to have been speaker for the second time at the SQLBits in London - |
Im März war ich glücklich zum zweiten Mal auf den SQLBits in London als Sprecher zu sein – wahrscheinlich DEM Event außerhalb der PASS in Europe wenn nicht weltweit. |
Extended Events – Top Features
In April I joined the SQLDay Poland for the first time, giving a session on Locking & Blocking and a second session on Security, namely SQL Injection: |
Im April war ich das erste Mal auf dem SQLDay Poland , mit einer Session zu Sperren & Blockaden und einer zweiten Sessio zu Sicherheit, genauer SQL Injection: |
From Locks to Dead-locks. – Concurrency in SQL Server
“SQL Attack…ed” – SQL Server under attack via SQL Injection
For June I am happy to be able to announce that I will again present on Extended Events at the SQL Saturday #409 Rheinland/Germany. - Added to that I am honored to give one of the 2 full day and free of cost PreCons: Together with Patrick Heyde, Microsoft (Technet-Blog), I will talk on SQL Server in Azure Environments. Specifically on how to optimally configure such a deployments to performance and cost-efficiency at the same time. (Also see my blog article “SQL Server in Microsoft Azure: How to gain performance by flexibility and save costs at the same time”) Besides giving a free PreCon and regular session, my Company Sarpedon Quality Lab is again officially sponsoring this home-event. This is part of my commitment to the German PASS Community – especially since my own family starts taking more time, this is a bit of what I can do to support the PASS Deutschland e.V.. |
Für den Juni darf ich mich glücklich schätzen, bekanntzugeben, dass ich auf dem SQL Saturday #409 Rheinland wieder zu Extended Events präsentieren werde. – Tatsächlich hatte ich bereits auf dem ersten Deutschen SQL Saturday 2012 zu Extended Eventzs präsentiert Zusätzlich dazu fühle ich mich geehrt, eine der 2 ganztägigen und kostenlosen PreCons zu geben: Zusammen mit Patrick Heyde, Microsoft (Technet-Blog), werde ich über SQL Server in Azure Umgebungen sprechen. Und zwar, wie man solche Deployments optimal konfiguriert um sowohl Performance- als auch Kosteneffizient zugleich zu sein. (Siehe auch meinen Blog-Artikel “SQL Server in Microsoft Azure: Wie man durch Flexibilität Leistung gewinnt und zugleich Kosten spart”) Abgesehen von der kostenblosen PreCon und regulärem Vortrag, ist meine Firma Sarpedon Quality Lab wieder offizieller Sponsor dieses Events. Das ist Teil meines Engagements für die deutsche PASS Community – speziell seit meine eigene Familie mehr Zeit beansprucht, ist das ein wenig dessen, was ich tun kann, den PASS Deutschland e.V. zu unterstützen. |
PreCon: Hybrid IT – Azure Scenarios & Dynamic Infrastructure
Tracing with Extended Events – Top Features
- If you are still using Profiler, or just started with XEvents, be sure to come along to see some of the nifty features ;-)
In September I will be at the SQLSaturday #413 Denmark in Copenhagen, organized among other by Regis Baccaro. I will be giving yet another PreCon on In-Memory OLTP and Clustered ColumnStore and a regular session on SQL Server storage. |
Im September werde ich auf dem SQLSaturday #413 Denmark in Kopenhagen, organisiert neben anderen von Regis Baccaro, sein. HIer gebe ich wieder eine PreCon zu In-Memory OLTP und Clustered ColumnStore und eine reguläre Session zu SQL Server Speicher. |
PreCon: New Index technologies: Clustered ColumnStore and In-Memory OLTP: the good and the bad
A journey into SQL Server Storage - from Memory to Disk
I hope to see YOU :-)
Andreas
Upcoming conferences end of 2014: Microsoft Technical Server Summit, MVP Summit, PASS Summit, Microsoft Technical Summit
Oct 15th
(DE) |
(EN) |
Nach der Vorstellung des SQL Server 2014 (SQL Server 2014 - Highlights in der Datenbank-Engine im Überblick) auf der BASTA im September in Mainz, geht es weiter im Oktober auf dem Microsoft Technical Server Summit in Düsseldorf mit einem Vortrag zu Neue Speicherformen in SQL Server 2014: |
After the introduction of SQL Server 2014 at the BASTA in September in Mainz/Germany, I am continuing in October with a presentation on New Storage-Types in SQL Server 2014 at the Microsoft Technical Server Summit Düsseldorf/Germany: |
Clustered Columnstore für DW und In-Memory OLTP - technische Hintergründe und Herausforderungen
Mit dem SQL Server 2014 kommt eine komplett neue Storage-Engine in den SQL Server: XTP mit Memory-optimierten Tabellen & Indexen. Und bereits seit der Version 2012 ist auch das ColumnStore-Format in die Engine integriert, welche in 2014 entscheidende Verbesserungen erfährt. In dieser Session wird der Microsoft Certified Master, Andreas Wolter, die technischen Hintergründe der neuen Speicherformen- & Engines beleuchten und ihre Vorteile demonstrieren. Ebenfalls aufgezeigt werden die technischen Herausforderungen dieser teilweise noch brandneuen Technologien, so dass Sie ein gutes Verständnis für die jeweils optimalen Einsatzszenarien und möglichen Migrationsaufwand mitnehmen können.
Anfang November folgt dann das alljährliche Highlight: Nach dem MVP Summit, wo ich hoffe die neuesten Entwicklungen hinsichtlich der nächsten Version des SQL Server zu erfahren, bin ich wie seit 2009 jedes Jahr auf dem PASS Summit in Seattle/USA. |
This is followed by the annual highlight at the beginning of November: After the MVP Summit, at which I’m hoping to learn about the most recent developments in terms of the forthcoming SQL Server, I will be attending the PASS Summit in Seattle/USA, which has become an annual habit since 2009. Furthermore, the summit provides the valuable opportunity to connect directly with the developers of SQL Server on site. This year, too, I will be presenting myself; however, just a short presentation, which will be on Reporting Services Map Reports & Dynamic ZOomiNG: |
Reporting Services Map Reports & Dynamic ZOomiNG:
With the advent of Power Map, Reporting Services maps seem even more static than they already were. But do maps really have to be that static?
While we will not be able to spin the globe within a report, there are at least a few ways to get some action inside a map.
In this session, we will look at an implementation of how to dynamically zoom in and out of a reporting services map without the use of subreports. Add this to your tool kit to increase the interactive experience of your geospatial reports.
Kaum zurück in Deutschland bin ich in Berlin auf dem Microsoft Technical Summit, wo auch der neue CEO von Microsoft, Satya Nadella eine Keynote halten wird. |
Once back in Germany, my next stop will be the Microsoft Technical Summit in Berlin where Microsoft’s new CEO, Satya Nadella, will be giving a keynote speech. There, I will be presenting the latest on the forthcoming SQL Server version together with Patrick Heyde, Microsoft (Blog) - as far as already released for the public. Additionally I will be giving a Deep Dive-presentation in In-Memory. |
Die genauen Inhalte der Session werden kurzfristig bekanntgegeben. Soviel sei verraten: Gezeigt werden Neuigkeiten rund um die nächste Version von SQL Server. Die Szenarien reichen von der Datenbank-Engine bis in die Cloud (Microsoft Azure) und decken On-Premise- und Cloud-Umgebungen ab. Seien sie also gespannt auf die kommenden Möglichkeiten mit On-Premise-, Hybrid- und Cloud-Only-Szenarien.
Im Dezember der würdige Abschluss mit dem alljährlichen PASS Camp, ebenfalls zum Thema In-Memory: In-Memory vNext and lessons learned |
December will see the worthy finale with the annual PASS Camp, likewise on the topic of In-Memory: In-Memory vNext and lessons learned. Here I am speaking the fourth time in a row since 2011 |
I hope to see some of you around somewhere,
Andreas
Artikel „SQL Server 2014 – Neues Fundament“ in iX Ausgabe 5/2014, Richtigstellungen zu In-Memory OLTP und ColumnStore Indexes und warum AlwaysOn nicht gleich Always On ist
May 8th
Article “SQL Server 2014 – New Fundament” in iX Issue 5/2014, corrections in In-Memory OLTP and ColumnStore Indexes, and why AlwaysOn is not the same as Always On.
(DE) |
(EN) |
In der finalen Version, die ich auch erst am Kiosk zu sehen bekommen habe, sind leider einige Ungenauigkeiten enthalten. Um Missverständnisse auszuschließen, möchte ich diese hier kurz geraderücken, bzw. ein korrektes Verständnis sicherstellen. Es geht los mit der Einleitung: „…Nach zwei Jahren Entwicklungszeit stellt Microsoft die neue Version seines Datenbankservers vor...“ Richtigstellung: Ich bin mir nicht sicher, wann der Startschuss für den SQL Server 2014 war, aber ziemlich sicher war das nicht 2 Jahre vor dem Release-Datum (1.4.2014), wie dieser Satz impliziert. Dass die In-Memory OLTP Engine XTP bereits 2009 mit ihrem ersten Patent untermauert wurde, schreibe ich etwas später noch im Artikel. Wann genau feststand, dass es einen SQL Server 2014 geben würde, und der Code entsprechend gebranched wurde, ist mir nicht bekannt. Wenn ich eine Vermutung abgeben würde, wäre dies eher ca. 3 Jahre vor dem Release. |
Unfortunately, in the final version, which I have actually only set eyes on at the newspaper kiosk, there are a few inaccuracies. In order to avoid misunderstandings, I will correct them here shortly, or rather ensure a correct understanding. Starting with the introduction: ”…After two years of developing, Microsoft introduces the new version of its database server…” Correction: I am not sure as to when the starting shot was made for the SQL Server 2014, but it is quite certain that it was not 2 years before the release date (1 April 2014), as implied by this sentence. A little later, in the article I also say that the In-Memory OLTP Engine XTP was confirmed with its first patent already in 2009. I am not aware of when exactly it was certain that there would be a SQL Server 2014, and that the code would be branched accordingly. If I was to speculate, I would say it was more like 3 years before its release.
|
2) „…Wichtigste Neuerung ist das Ablegen relationaler Daten im Hauptspeicher statt auf der Festplatte….“ Richtigstellung: Diejenigen, die sich bereits ein wenig mit dieser neuen Technologie auseinandergesetzt haben, wissen es natürlich: Die Daten werden sowohl in RAM als auch auf Festplatte gespeichert – es sei denn man arbeitet mit „Schema_Only“-Tabellen. Später im Artikel wird das auch noch deutlich, mag aber hier verwirren. |
2) „…The most important innovation is the storing of relational data in the main storage instead of the hard drive.” Correction: Those who have already familiarized themselves a little with this new technology will know of course: The data are stored both in RAM and in the hard drive – unless you work with “schema_only”-tables. This will become clear later in the article, but may cause some confusion here.
|
3) „…Stored Procedures in Maschinensprache Das kann man leicht falsch verstehen. |
3) „…Stored Procedures in machine language.“ … “Native compiling” …”Before the first run, the server produces a DLL from the respective procedure for this. These libraries, however, do not last through the restart of database or server, so they have to be generated again afterwards…” This can be easily misunderstood. Correction: To be precise, these DLLs are regenerated after each restart of the database or database server (at first usage). – Thus, one does not have to generate these DLLs or even the procedures new oneself. |
4) „(Nativ kompilierte Prozeduren)…Solche Prozeduren … erlauben noch nicht alle T-SQL-Sprachelemente. Es fehlen beispielsweise Raiseerror und Begin Transaction, einige Funktionen sowie Query Hints.“ Auch das könnte jemanden auf eine falsche Fährte führen. |
4) „(Natively complied procedures) … Such procedures … do not yet allow for all T-SQL language elements. For instance, Raiseerror and Begin Transaction are missing, as well as a few functions and Query Hints.” This, too, could be misleading. Correction: Put more precisely: “For instance, it is not possible to use particular commands such as Raiseerror or Begin Transaction, instead of which an “atomic” block is required.” The Atomic-Block already starts a transaction, so an additional “begin transaction” is superfluous in any case. – By the way, a few Query Hints are actually supported.
|
5) „(neue Parallelitätskontrolle „multi-versioned, timestamped optimistic concurrency control“)… Dazu ergänzt der Server alle Datensätze um einen bei jeder Änderung automatisch aktualisierten Zeitstempel, anhand dessen er Konflikte erkennt…“ Das kann man auch leicht falsch interpretieren und einen glauben lassen, dass immer der selbe Datensatz aktualisiert wird. Der Hintergrund von „multi-versioned, timestamped optimistic concurrency control“ ist aber gerade, das es pro Version einen neuen Datensatz gibt, was sich in ausführlichen Tests von Microsoft Research in realitätsnaheren Testreihen (mit komplexeren Transaktionen im Mix mit längeren Lesezugriffen und Hotspot-Szenarien) als effizienter als „Single-version locking“ herausgestellt hat. (Quelle: „High-Performance Concurrency Control Mechanisms for Main-Memory Databases“, Microsoft, University of Wisconsin – Madison) |
5) „(new concurrency control, „multi-versioned, timestamped optimistic concurrency control“)… For this, the server complements all data sets by an automatically updated timestamp created with each change, with the help of which it recognizes conflicts…” This can also be easily misinterpreted and may make believe that always the same data set is being updated. However, the background to “multi-versioned, timestamped optimistic concurrency control” is in fact that there is a new data set per version, which comprehensive tests in realistic test series by Microsoft Research (with more complex transactions combined with longer read access and hotspot scenarios) have shown to be more efficient than “Single-version locking.” (Source: “High-Performance Concurrency Control Mechanisms for Main-Memory Databases,” Microsoft, University of Wisconsin – Madison) Single-Version Locking, for example, is applied by Oracle TimesTen and IBM’s solidDB. Correction: It is thus more precise to say that there is one data set per version, and the “old versions” are marked as such by an end-timestamp. |
6) „(Clustered ColumnStore Indexe)…Diese erweiterte Variante der Hauptspeicher-Index-Technik wurde für die 2013 erschienene PDW-Variante (Parallel Data Warehouse) des SQL Server 2012 entwickelt und ist dort bereits im Einsatz…“ Die Wortwahl lässt vermuten, dass diese (Columnstore) Indexe, wie auch bei In-Memory optimierten Tabellen & Indexen, lediglich im Hauptspeicher liegen. Das stimmt natürlich nicht. |
6) “(Clustered ColumnStore Indexes)… This enhanced type of the Main-Memory Index Technique was developed for the PDW-version (Parallel Data Warehouse) of the SQL Server 2012 made available in 2013 and is already being applied there…” The choice of words suggests that these (Columnstore) indexes, just as with the In-Memory optimized tables & indexes, are located in the main memory only. This is of course not the case. Correction: More precise would be to say: “Main-Memory-optimized indexes” |
7) Und last but not least leider hat sich auch in diesem Artikel ein häufiger Fehler eingeschlichen: Die Lösung für hohe Verfügbarkeit und Notfallwiederherstellung, welche im SQL Server 2012 neu eingeführt wurde, schreibt sich natürlich „AlwaysOn“, und weder „Always On“ noch „Always-On“.
Über „Always On” lässt sich z.B. hier nachlesen: www.dell.com/downloads/global/solutions/ Im SQL Server 2008 wurde „Always On“ für die gesamte Palette der Hochverfügbarkeitstechniken verwendet. Dazu gehörten Database Mirroring, Log Shipping, Failover Clustering, Peer-to-Peer Replication, Backup und Restore (!), Database Snapshots, selbst Partitionierung und weiteres. (Hier nachzulesen: High Availability – Always On Technologies) Das hat also nicht mit dem neuen Features AlwaysOn-Verfügbarkeitsgruppen/Availability Groups und AlwaysOn-Failoverclusterinstanzen zu tun. |
7) And last but not least, I’m afraid in this article, too, a common mistake has slipped in: The solution for high availability and emergency restoration reintroduced in SQL Server 2012 is spelled “AlwaysOn,” of course; – neither “Always On” nor “Always-On.” “Always On” (with space) was already applied in SQL Server 2005 in order to certify storage hardware for SQL Server. It includes, for example:
You can read more on “Always On” here, for example: www.dell.com/downloads/global/solutions/ In SQL Server 2008, “Always On” was used for the entire range of high availability techniques. These include Database Mirroring, Log Shipping, Failover Clustering, Peer-to-Peer Replication, Backup and Restore (!), Database Snapshots, even partitioning, and more. (Read more here: High Availability – Always On Technologies) So this does not have anything to do with the new features AlwaysOn-Availability Groups or AlwaysOn-Failoverclusterinstances. What is more, feature names are not simply „Germanized,“ just as you do not spell SharePoint separately – and no, I will not even do this for demonstration purposes ;-).
|
Soweit habe ich nun meinem Genauigkeitsempfinden genüge getan ;-)
Da das folgende Diagramm es leider nicht in den Artikel geschafft hat, möchte ich es hier zumindest mit meinen Lesern teilen: |
For now, I feel like I have satisfied my sense of accuracy ;-)
Since the following graph has unfortunately not made it into the article, I would like to share it with my readers here at least: |
Das ist das Ergebnis eines Performance-Vergleiches einer schematisch so gut wie identischen „on-Disk“-Tabelle gegenüber den verschiedenen In-Memory OLTP Varianten. Der Test wurde auf Standard-Hardware durchgeführt: Intel i7-3529 (2,9Ghz), 2 Cores hyperthreaded, 16GB RAM und SSDs. Das Ergebnis kann sich sehen lassen und entspricht Microsofts Versprechung, das neue Hardware nicht zwingend erforderlich ist, um spürbare Performance-Gewinne durch den Einsatz der XTP-Engine zu erhalten. |
This is the result of a performance comparison of a schematically virtually identical “on-disc”-table compared to the different In-Memory OLTP variants. The test was carried out with standard hardware: Intel i7-3529 (2,9Ghz), 2 Cores hyperthreaded, 16GB RAM and SSDs. The result is quite impressive and matches Microsoft’s promise that new hardware is not imperative in order to obtain tangible performance gains through the application of the XTP-Engine. |
Und hier sind auch nochmal die begleitenden Links zu dem Artikel: |
These are the corresponding links to the article: |
- Liste der unterstützten SQL-Server-Features bei In-Memory-OLTP / List of the supported SQL-Server-Features in In-Memory-OLTP
- The Bw-Tree: A B-tree for New Hardware Platforms
- Liste der unterstützten SQL-Befehle bei kompilierten Stored Procedures / List of supported SQL-commands in compiled Stored Procedures
- Microsoft Case Studies
- http://www.microsoft.com/casestudies/Case_Study_Detail.aspx?casestudyid=710000003117
- http://www.microsoft.com/casestudies/Microsoft-SQL-Server-2012/Ferranti-Computer-Systems/Utilities-ISV-Scales-to-Meet-Customer-Needs-for-Storage-and-Analysis-of-Big-Data/710000003000
- Dokumentation zum Column Store Index / Documentation of Column Store Index
- Buffer Pool Extension
- Änderungen im Cardinality Estimator / Changes in Cardinality Estimator
- Windows Azure
- Premium Preview for SQL Database Guidance
- PowerBI for Office 365
Ich hoffe, die genannten Punkte sind für ein besseres Verständnis nicht nur des Artikels sondern auch von SQL Server 2014 allgemein hilfreich. Kommentare oder Nachfragen können gern hier über meinen Blog hinterlassen werden. |
I hope the points above are helpful for a better understanding not only of the article but also of SQL Server 2014 in general. You are welcome to leave comments or questions in my blog. |
Andreas Wolter
PS: Leider sind in meiner Master-Class Workshop In-Memory OLTP & ColumnStore - New Storage Engines in SQL Server 2014 (XTC) keine Plätze mehr verfügbar (!). Im Sommer wird sicher die Entscheidung für eine Neuauflage im 2. Halbjahr 2014 oder doch erst wieder im 1. HJ 2015 fallen. – Im 2. HJ stehen wieder viele Konferenzen, inklusive MVP Summit, PASS Summit und PASS Camp an, so dass es da wirklich eng wird. Aussichtsreicher ist da meist eine Inhouse-Schulung auf Anfrage. |
P.S.: Unfortunately, there are no spots left (!) in my Master-Class Workshop In-Memory OLTP & ColumnStore - New Storage Engines in SQL Server 2014 (XTC). The decision for a remake either in the second half of 2014, or only in the first half of 2015, will probably be made in summer. – For the second half of 2014, many conferences, including MVP Summit, PASS Summit and PASS Camp, are lined up, so it is already quite cramped. The prospects may thus often be better for an in-house-training on request. |
Upcoming Conferences: SQLSaturdays in Denmark and Portugal. – Presenting In-Memory OLTP Deep-Dive for Administrators
Mar 3rd
(de) Am 29. März in Kopenhagen, Dänemark Da ich auch letztes Jahr bereits in Kopenhagen als Sprecher dabei war, kann ich aus erster Hand für die exzellente Organisation und Sprecherauswahl verbürgen. Und für Portugal verbürgt mein sehr geschätzter Kollege Niko Neugebauer (Blog, Twitter:@NikoNeugebauer) – nach allem, was bisher „geleaked“ ist, wird es wieder ein Kongeniales Event. Würdig der ersten SQLSaturday-Location in Europa überhaupt. |
(en) On March 29th in Copenhagen, Denmark Since I already participated as a speaker in Copenhagen last year, I can avouch from “insider information” for the excellent organization and speaker choice. And my much valued collegue Niko Neugebauer (Blog, Twitter:@NikoNeugebauer) vouches for Portugal – after all what has “leaked” in th emeantine, it will be another congenial event. Condign to the first SQLSaturday-Location in Europe ever. |
Ich möchte zumindest einige, mir persönlich bekannte Sprecher namentlich erwähnen, aber gleich betonen, dass auch alle anderen Sessions definitiv einen Blick Wert sind(!): In Dänemark sind dabei:
|
I would like to at least name some speakers, which I personally know, by name, but I would also like to stress immediately, that also all other sessions are definitely worth looking at just as well: In Denmark there will be:
I am excited to see all of you again soon! The complete Agenda can be found here: www.sqlsaturday.com/275/schedule.aspx I am excited to see all of you again soon in Copenhagen! |
In Portugal sind dabei:
Die vollständige Agenda befindet sich hier: |
In Portugal there will be:
The complete Agenda can be found here: www.sqlsaturday.com/267/schedule.aspx I am excited to see all of you again soon in Lisbon! |
Und meine Wenigkeit, was präsentiere ich? |
And my humble self, what am I presenting? |
SQL Server 2014 In-Memory OLTP / XTP Management Deep Dive
@SQLSaturday Denmark & Portugal
You have heard about Hekaton, respectively the new acronym XTP (eXtreme Transactional Processing) and you want to know how it works under the cover? In this session we will take a closer look at the architecture, where the performance benefits come from and how it works in detail. What kind of files is SQL Server using for transactional consistency, what happens when you delete data inside the log and inside the data files. We will see the Merge-Process and the Garbage Collector in action, see how memory management works for XTP enabled databases, and thereby get an in-depth understanding of how this completely new storage engine works and how to optimize for it.
CU in Copenhagen, Lisbon.. or at another conference soon :-)
Andreas