Category: "Columnstore Index"
Sarpedon Quality Lab presenting SQL Server 2016 In-Memory and Security Features in Arabia at SQL Gulf 3
Apr 15th
مرحبا
(“MARR-hah-bah”, Arabic: Hello) This year takes me to yet another part of the world: I have been invited to speak at THE SQL Server Conference in the Middle East: at SQL Gulf 3 taking place in Riyadh, Saudi Arabia on April 23rd. I feel very much honored to be among the selected speakers: Denny Cherry, Victor Isakov, Peter Myers, Satya Shyam K and Shehap El-Nagar the organizer himself, who has done a great job pulling this off the third time!For example about 7 TV stations are expected to cover this event! |
(“MARR-hah-bah”, Arabisch: Hallo) Dieses Jahr bringt mich an eine weitere Gegend dieser Welt: Ich bin eingeladen worden auf DER SQL Server Konferenz im Nahen Osten: auf der SQL Gulf 3, die am 23. April in Riad Saudi Arabien stattfindet, als Sprecher aufzutreten. Ich fühle mich sehr geehrt unter den ausgewählten Sprechern zu sein: Denny Cherry, Victor Isakov, Peter Myers, Satya Shyam K und Shehap El-Nagar dem Organisator selbst, der einen tollen Job gemacht hat, das zum dritten Mal zu leisten.So werden zum Beispiel ca. 7 TV-Sender werden von diesem Event berichten! |
I will be giving two presentations. The first one is on the new In-Memory capabilities of SQL Server 2016, which have been tremendously enhanced, and the second one is on the new Security features which represent one of the pillars of this release: |
Ich werde zwei Vorträge halten. Einen über die neuen In-Memory Fähigkeiten von SQL Server 2016, die enorm verbessert worden sind und den zweiten zu den neuen Sicherheitsfeatures, die eine der drei Säulen dieses Releases darstellen: |
SQL Server 2016 – the evolution of In-Memory technologies
For SQL Server 2014 a completely new In-Memory Engine for memory optimized table & indexes was integrated into SQL Server with in fact very limited functionality.
For SQL Server 2016 the In-Memory engine is being extensively improved in terms of both scalability and T-SQL language support. Moreover, the ColumnStore index technology has been improved and can now even be combined with memory-optimized tables.
In this session I will provide an overview of the new possibilities and demonstrate where a particular technology may help – or where you cannot expect benefits. If you are planning to go on SQL Server 2016 any time soon, this session shows you two of the most important features that SQL Server 2016 brings.
SQL Server 2016 – the Security Release
In this session I will give insights into the most important security features of SQL Server 2016. In fact, this release will introduce completely new features that serve data security on different levels. The top 3 features are: Dynamic Data Masking, Row Level Security, and, as a highlight: Always Encrypted. Also, the new possibilities in Azure will not remain unmentioned either. The session will provide technical insights and demos but also hints to security traps. In the end a system is only as secure as its weakest spot.
This session aims to assist Administrators as well as Developers in determining the right technologies for their needs.
I am looking forward to making many new contacts with people from this region of the world that is striving for modernization in many aspects and already reached the top in several. |
Ich freue mich darauf, viele neue Kontakte mit Menschen aus dieser Region, die in vielerlei Hinsicht nach Modernisierung strebt und in einigen bereits Spitzenklasse erreicht hat, zu machen. |
مع السلامة (Ma’a salama)
Andreas
SQLKonferenz in Darmstadt: Vorstellung der Security Features von SQL Server 2016 mit dem Leiter des Security-Teams aus Redmond
Feb 19th
SQLKonferenz in Darmstadt: Presenting the Security Features of SQL Server 2016 with the program manager of the security-teams from Redmond
(DE) Und dieses Jahr ist für mich gleich in zweierlei Hinsicht ein besonderer Höhepunkt: Zum einen ist meine Firma, Sarpedon Quality Lab®, erstmalig Silber-Sponsor der Konferenz. Damit unterstütze ich die PASS Deutschland e.V., der deutschen SQL Server Community, der ich seit vielen Jahren sehr verbunden bin, und in welcher ich auch seit einigen Jahren als einer der 3 Regionalgruppenverantwortlicher der Region Rheinland engagiert bin. Und das Highlight schlechthin, seit ich 2009 das erste Mal in Seattle auf dem PASS Summit vor großem Publikum Wege zeigte, SQL Server sicherheitstechnisch auszuhebeln, ist: |
(EN) And this year represents a particular peak for me in two regards: For one, my company, Sarpedon Quality Lab®, is for the first time Silver Sponsor of the conference. In this way, I am supporting PASS Deutschland e.V., the German SQL Server Community, with which I have been closely connected for many years, and in which I have also been involved as one of the 3 regional chapter leaders of the Rheinland Region for a couple of years. And the highlight per se – ever since I had for the first time demonstrated to a large audience at the PASS Summit in Seattle in 2009 how to break through SQL Server in terms of security – is: |
Joachim Hammer, der Leiter der Security für die SQL Engines bei Microsoft in Redmond (also SQL Server und auch der In-Memory Engine XTP, Azure, APS,…) wird mit mir zusammen die neuen Sicherheitsfeatures des bald erscheinenden SQL Server 2016 vorstellen! Das ist eine große Ehre für mich. Ich freue mich, dass ich ihn dafür gewinnen konnte, unsere Konferenz in Deutschland zu besuchen und sich in einer gemeinsamen Session dem kritischen deutschen Publikum zu stellen. Die Vortrags-Agenda: |
Joachim Hammer, the Head of Security for the SQL Engines at Microsoft in Redmond (i.e. SQ Server as well as the In-Memory Engine XTP, Azure, APS, …) will be introducing with me the new security features of SQL Server 2016, which will be released soon! This is a great honor for me. I am happy that I was able to convince him to attend our conference in Germany and to be available to the tough German audience in a joint session. |
SQL Server 2016 – The security release – News from Redmond
Joachim Hammer, Leiter des Security-Teams für die relationalen SQL Engines in Redmond, und Andreas Wolter, Microsoft Certified Solutions Master der Data Platform, geben in dieser Session Einblicke in die wichtigsten Sicherheits-Features von SQL Server 2016. Denn dieses Release wird komplett neue Features einführen, die auf verschiedenen Ebenen der Datensicherheit dienen. Die Top 3: Dynamic Data Masking, Row Level Security und das Highlight: Always Encrypted. In dieser Session gibt es technische Einblicke und Demos, aber auch Hinweise auf Sicherheits-Fallstricke sowie die einmalige Möglichkeit, Fragen zu Implementierungsdetails und dem Entwicklungsprozess direkt an den Entwicklungschef zu stellen. Die Session soll Administratoren als auch Entwickler bei der Entscheidungsfindung für die richtige Technologie unterstützen. Der Vortrag wird in englischer Sprache stattfinden, Fragen können aber problemlos live übersetzt werden. Nutzen Sie diese einmalige Möglichkeit den Program Manager der Security Teams direkt Fragen stellen zu können.
|
In this session, Joachim Hammer, Program Manager of the Security-Team for the relational SQL Engines in Redmond, and Andreas Wolter, Microsoft Certified Solutions Master for the Data Platform, will give insights into the most important security features of SQL Server 2016. In fact, this release will introduce completely new features that serve data security on different levels. The top 3 features are: Dynamic Data Masking, Row Level Security, and, as a highlight: Always Encrypted. The session will provide technical insights and demos but also hints to security traps as well as the unique opportunity to address questions regarding implementation details and the development process directly to the head of development. |
Zeitpunkt des Vortrages: 24.2. 13:30-14:30 Wer es irgendwie einrichten kann: lasst es Euch nicht entgehen, Fragen direkt an den Program Manager für SQL Security zu stellen! Zusätzlich wird es am 25.2. noch eine spezielle Panel Discussion zum Thema Security in SQL Server geben, die ich moderieren werde. Auch hier wird Joachim Hammer sicherlich der Star-Gast sein. Die anderen Gäste verrate ich noch nicht, da es teilweise eine Überraschung sein soll. :-) |
Time of the presentation: 24 Feb., 1:30-2:30 pm. For those who can make it work somehow: don’t miss out on the chance to pose questions directly to the Program Manager for SQL Security! In addition, on 25 Feb. there will be a special Panel Discussion on Security in SQL Server, which I will be chairing. Here, too, Joachim Hammer will certainly be the star guest. I won’t tell who the other guests are, as it’s kind of supposed to be a surprise. :-) |
Das Thema In-Memory wird dieses Jahr übrigens von meinem geschätzten Kollegen Guido Jacobs, ebenfalls Microsoft, übernommen werden. In seinem Vortrag, der sich direkt meinem anschließt, geht es um „Operational Analytics“, das der Begriff für die im SQL Server 2016 mögliche Kombination aus In-Memory OLTP mit ColumnStore Technologie ist. Mein Tipp: es lohnt sich, sich damit nun zu befassen. Die XTP-Engine ist im SQL Server 2016 wirklich wesentlich ausgereifter und für viel mehr Workloads und Datenbankdesigns verwendbar. Hier geht’s zur kompletten Agenda der SQLKonferenz: |
This year, the topic In-Memory will be taken over by my distinguished colleague Guido Jacobs, also from Microsoft. His presentation, which will follow right after mine, is on “Operational Analytics:” the term for the combination of In-Memory OLTP with ColumnStore Technology that is possible in SQL Server 2016. My advice: it is worth dealing with it now. The XTP-Engine is far more sophisticated in SQL Server 2016 and applicable for many more workloads and database designs. Here you can find the complete agenda of the SQL Conference: |
Ich freue mich auf interessante Gespräche. Und diesmal wird es leichter sein, mich zu finden: wenn ich nicht gerade in einem Vortrag bin, sollte ich am Stand von Sarpedon Quality Lab® zu finden sein :-). |
I am looking forward to interesting discussions. This time, I will be easier to find: unless I am sitting in on a presentation, or presenting myself, you should find me at the Sarpedon Quality Lab® booth :-). |
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
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. |