Tag: "sqlsaturday"

Konferenzen im SQL Server Sommer 2016 – Conferences in SQL Server summer 2016

(DE)
Kaum von den SQLBits XV in Liverpool zurück, auf der ich die Security-Features des SQL Server 2016 vorstellen durfte (SQL Server 2016 - Security Obscurity and Encryption), bin ich im Moment mit der Planung der nächsten SQL Server Master-Class zu Hochverfügbarkeit mit SQL Server (SHA) beschäftigt, die vom 20.-22.6. bei Frankfurt a.M. stattfinden wird.

Hinweis: in den 3 Wochen seit Freischaltung der Anmeldung sind bereits 70% der Plätze vergeben worden. Wer sich noch einen Platz sichern möchte aber nicht weiß, wie schnell seine Einkaufsabteilung es schafft, kann sich gern an mich direkt wenden.
- Mitglieder der PASS Deutschland e.V. erhalten auch diesmal 15% Rabatt.

(EN)
It feels like I have just been back from the SQLBits XV in Liverpool, where I introduced the Security Features of the SQL Server 2016 (SQL Server 2016 - Security Obscurity and Encryption), and next thing I know, I am already in the middle of planning the next SQL Server Master-Class on High Availability with SQL Server (SHA) that is going to take place from 20-22 June near Frankfurt a.M.

Note: in the 2 weeks since activation of registration already 70% of the places have already been filled. If you want to secure a spot but don’t know how you’re your purchase department will make it, you are welcome to contact me directly.
- Members of PASS Deutschland e.V. will once again receive a 15% discount.

 

 

Davor noch aber findet, wie die beiden Jahre zuvor, der deutsche SQLSaturday „Rheinland“ in der Hochschule St. Augustin bei Bonn statt.
Diesen unterstützt meine Firma, Sarpedon Quality Lab®, wie auch das Jahr zuvor als Sponsor.

But before, the German SQLSaturday „Rheinland“ is taking place, like the previous two years.
My company, Sarpedon Quality Lab®, will be a sponsor again like last year.

  

Ich selber werde auch mit einem Vortrag vertreten sein. Diesmal mit einem Beitrag zu ganz klassischer Performance Tracing. Allerdings nicht, wie man immer noch hin und wieder „in the wild“ sieht mit SQL Profiler, sondern natürlich mit aktuellen Technologien wie Extended Events und sogar der neuen Query Store von SQL Server 2016:

I will also be presenting. This time, it is going to be on the entirely classical topic of Performance Tracing. However, not with SQL Profiler as can be seen once in a while “in the wild,” but of course with current technologies such as Extended Events and even the new Query Store by SQL Server 2016:

Analysieren von SQL Server Workloads mit DMVs und XEvents

Diese Session führt durch eine beispielhafte Performance-Analyse unter der Verwendung von DMVs und Extended Events. Wir sehen, wie man eine Top-Down Analyse mit eingebauten Tools durchführen kann und wie man eine feingradige Analyse selbst mittels den „Wait Statistics“ durchführen kann, um Performance-Problemen und Bottlenecks auf die Schliche zu kommen. Zur Identifizierung von Plan-Änderungen wird auch die neue Query Data Store von SQL Server 2016 zum Einsatz kommen. Wer auf dem Feld der Performance-Analysen noch neu ist oder sehen möchte, wie man an die Herausforderung herangehen kann, wird hier praktische Einblicke erhalten, wie man eine Workload analysieren kann. – Die Session ist selbstverständlich „Profiler-free“ ;-)

Performance Analyzing SQL Server workloads with DMVs and XEvents

This session you will be lead you through an example performance-analysis using mainly DMVs and Extended Events. You will see how a top-down analysis using built-in tools can be conducted. This will include wait statistics on different scopes to identify performance problems and bottlenecks up to identifying query plan changes – with & without using the Query Store of SQL Server 2016. If you are new to performance analyzing this session will give you a practical insight into how to methodically approach performance troubleshooting.

 

 

Asien

Im August bin ich wieder in Asien unterwegs und das zweite Mal in Folge auf der größten SQL Server Konferenz Asiens: dem SQL Server Geeks Summit in Bangalore, Indien.

Asia

In August, I will be traveling Asia again and attending the largest SQL Server Conference in Asia for the second time in a row: the SQL Server Geeks Summit in Bangalore, India.

 

Bangalore

Dort werde ich dieses Jahr eine ganztägige Pre-Con geben. Thema: Die In-Memory Storage Engines von SQL Server, die mit dem SQL Server 2016 umfangreich verbessert worden. Das heißt es geht um ColumnStore, Memory Optimized Tabellen, Memory Optimized Indexe, und die Kobinationsmöglichkeiten mit traditioneller Row-Store oder auch ColumnStore für Mixed OLAP als auch OLTP workloads.
Es wird super spannend und sehr technisch. Wer sich damit noch nicht beschäftigt hat: es wird höchste Zeit. Die Art und Weise, wie man Datenbanken konzipiert und designt ändert sich zurzeit rapide. Ich bleibe bei meinen Vorhersagen, dass ColumnStore bald der Standard für Datawarehousing sein wird, und In-Memory OLTP der standard für hochperformante OLTP-Szenarien. Hier zeige ich die technischen Hintergründe und Machbarkeiten.

This time, I will be giving a full-day Pre-Con. Topic: The In-Memory Storage Engine of SQL Server that have been extensively improved with SQL Server 2016. That is, it will be about ColumnStore, Memory Optimized Tables, Memory Optimized Indexes, and the combination possibilities with traditional Row-Store or also ColumnStore for Mixed OLAP as well as OLTP workloads.
It will definitely be super exciting and very technical. If you haven’t dealt with this yet: it is about time! The way of conceptualizing and designing databases is changing rapidly at the moment. I am sticking to my predictions that ColumnStore will soon be the standard for Datawarehousing, and In-Memory OLTP the standard for high performing OLTP scenarios.
At this Pre-Con, I will be demonstrating the technical background and feasibility.

 

Pre-Con Title:

The Present and Future: In-Memory in SQL Server – from 0 to Operational Analytics Master

Track:                DBA/DEV

Pre-Con Abstract:

When the Columnstore Index technology, based on the xVelocity In-Memory engine, came with SQL Server 2012 in the form of Nonclustered Columnstore, and SQL Server 2014 brought us updatable Clustered Columnstore Indexes plus a completely new In-Memory OLTP Engine, “XTP”, for memory optimized table & indexes, those features were still new and because of their limitations used only rarely.

SQL Server 2016 takes both technology onto a whole new level:

Columnstore indexes among other things now support snapshot isolation and hence fully support readable secondaries. Batch execution is not exclusively for parallel threaded queries anymore. They can be combined with other B-tree indexes and even be filtered and support referential integrity with primary and foreign key constraints. Also so-called In-Memory Operational Analytics is supported by the ability to create Columnstore Indexes on memory optimized tables.

On the other hand the In-Memory engine has been extensively improved in terms of both scalability and T-SQL language support, taking away many of the relevant limitations for adaption of version 1 in a similar way than the Columnstore technology. For example altering of pre-compiled objects is now possible, bucket-counts can be adjusted, natively compiled stored procedures can be recompiled and foreign keys are supported as well as encryption with TDE.

All those improvements will make In-Memory technologies a viable option in many projects. For Datawarehouses many (including me) say, that Columnstore will become the default storage type for all objects. And it can be foreseen that over the years the same will happen for OLTP-tables that have to support highly concurrent workloads will be based on memory optimized tables.

It’s time to extend our skills to those technologies to be able implement and support the new types of storage that are coming to our databases to address the fact of ever more data being stored and queried and performance demands and (real time) analytic requirements going up.

At this full-day training day, Microsoft Certified Master for the Data Platform Andreas Wolter, familiar with SQL Servers In-Memory technologies from the early bits on, will give a complete picture on the current state of technology. Attendees will learn how and where to use either In-Memory OLTP or Columnstore or even both for efficient queries and data storing and the important bits both from developers and administrators perspective.

Modules/Topics Include:

1.          Columnstore Storage Engine and compression internals

2.          What is the benefit for OLAP performance

3.          When to use Clustered or Nonclustered Columnstore Indexes

4.          XTP Engine internals for In-Memory OLTP performance benefits

5.          Memory optimized Tables, indexes and Variables

6.          Natively compiled stored procedures & triggers

7.          Combination of Row-Store, Columnstore/xVelocity and XTP engine for operational analytics

Key Takeaways:

1.          How the new storage engines Columnstore & XTP work behind the covers

2.          What are the strengths and weaknesses of these alternate storage engines and how can they be played out best

3.          How to get a quick start with In-Memory optimized objects in almost any environment

4.          What are the typical performance patterns that these technologies address

5.          How to build highly performing Datawarehouse tables

6.          How to improve OLTP hotspot tables with In-Memory technologies

7.          How to enable real-time analytics of operational data

8.          What’s important from file management perspective for administrators

9.          How can Columnstore and In-Memory Hash- & Range-indexes be maintained

10.        What hotspots can you expect for those technologies – or is there any?

Demos:

1.          Performance-Improvements for OLAP workloads with Nonclustered Columnstore indexes …

2.          … Clustered Columnstore indexes

3.          Performance-Improvements for OLTP workloads with memory optimized tables, indexes and code

4.          Operational analytics on row store vs operational analytics on In-Memory

5.          … all under different workload-types

6.          How do Columnstore indexes handle updates to data under the covers

7.          How In-Memory optimized objects look like on disk

Attendee Pre-requisites:

1.          Basic T-SQL knowledge for code-reading

2.          clustered vs nonclustered indexes basics

 

Obendrein werde ich noch zwei normalere Sessions auf der Hauptkonferenz geben. Die Themen stehen noch nicht fest.

Ich freue mich bereits wieder auf das enthusiastische Publikum in Indien!

Added to that I will give two more normal sessions at the main conference. The topics are not final yet.

I am looking forward to the enthusiastic audience in India again!

 

Nach Indien werde ich auf der SQLSaturday Singapore präsentieren. Diese Konferenz wird bei Microsoft Singapore Operations Pte Ltd, One Marina Boulevard stattfinden – inmitten der berühmtesten Sehenswürdigkeiten Singapurs.

Hier gebe ich möglicherweise auch eine PreCon, aber die Planung ist noch nicht abgeschlossen, also mal schauen, was es sein wird. Auch auf dieses Event freue ich mich sehr.

After India I will be presenting at SQLSaturday Singapore. This event will be held at Microsoft Singapore Operations Pte Ltd, One Marina Boulevard – right in the center of the most famous sights of Singapore.

Also here I might give a PreCon, but the planning is not finalized yet, so let’s see what it will be. I am very much looking forward to this event as well.

SingaporeCu in St. Augustin, Bangalore or Singapore – your turn to choose ;-)

Andreas

SQL Server in Microsoft Azure: How to gain performance by flexibility and save costs at the same time

 SQL Server in Microsoft Azure: Wie man durch Flexibilität Leistung gewinnt und zugleich Kosten spart

(DE)
Diesmal widme ich mich erstmalig in einem Artikel den Thema Microsoft Azure.
(Microsoft.com: Was ist Microsoft Azure?)
Unter Microsoft Azure werden mittlerweile eine Unmenge an Diensten bereitgestellt, und einer davon ist das Hosting von virtuellen Machinen, in denen ein SQL Server Dienst läuft. Hierbei sprechen wir also von IaaS (Infrastructure as a Service).

- Hier wird dieses Service-Modell nähergehend erläutert und unter anderem auch dem PaaS-Ansatz gegenübergestellt:
Which Windows Azure Cloud Architecture? PaaS or IaaS?

Eine schöne gegenüberstellende Grafik findet sich in diesem Blog-Artikel:
Windows Azure IaaS vs. PaaS vs. SaaS

Nachdem man sich einmal entschieden hat, dass das Konzept IaaS für einen Teil der eigenen Umgebung Sinn macht, steht die Frage der Konfiguration der SQL Server Systeme an.
Hier werden in dem Azure Portal fertige Images angeboten, die gerade Einsteigern den Zugang erleichtern sollen.
- Tatsächlich kann man mit nur 7 Klicks einen Windows Server inklusive lizensierten SQL Server einrichten, wenn man eine Vorlage aus der Galerie verwendet.

(EN)
This is the first time that I am tackling Microsoft Azure in an article. (Microsoft.com: What is Microsoft Azure?)

A plethora of services is provided by Microsoft Azure by now, of which the hosting of virtual machines running on an SQL Server service is one. This is what we call IaaS (Infrastructure as a Service).

- Here, this service model will be explained in more detail and, among others, compared to the PaaS approach: Which Windows Azure Cloud Architecture? PaaS or IaaS?

- A nice comparative graph is available in this blog article:
Windows Azure IaaS vs. PaaS vs. SaaS

After determining that the concept IaaS makes sense for part of one’s own environment, the issue of the SQL Server Systems configuration will be next. In the Azure Portal ready-made images are available that will facilitate access especially for starters.
- In fact, with only 7 clicks it is possible to set up a Windows Server including a licensed SQL Server when using a template from the gallery

 

 

Für den produktiven Einsatz von SQL Server muss man sich jedoch etwas mehr Mühe geben, denn die Standard-Vorlagen enthalten nur eine Daten-Disk, und auf der liegt das Betriebssystem. – Dort möchte man seinen SQL Server aus mehreren Gründen nicht betreiben.
Neben Datenintegrität ist das die IO-Performance.

Microsoft stellt daher auch sogenannte „optimized“ Images -für entweder OLTP- oder OLAP-Szenarien zur Verfügung (Im Screenshot rot umrahmt), welche direkt mit 15 weiteren Data Disks kommen, was dann insgesamt 16 macht.

However, for the productive application of SQL Server some more efforts are required, as the standard templates merely contain a data disc in which the operating systems is located. – Yet there are several reasons as to why one should not run one’s SQL Server here: data integrity and IO performance.

Therefore, Microsoft also provides so-called “optimized” images – for OLTP or OLAP scenarios – (highlighted by red frame in the screenshot) that immediately come with 15 more data discs making a total of 16.

 

1) Variante 1, der „traditionelle Ansatz“ ist also: mehrere Data Disks und eine Maschine mit entsprechender Unterstützung/CPU-Power.

Die in diesem Fall 15 Daten Disks (neben der OS Disk) werden in 2 Storage Pools zu je 12 bzw. 3 Disks für SQL-Daten und SQL-Logs vorkonfiguriert.

Die maximalen IOPS hängen auch von den zur Verfügung stehenden CPU-Cores ab. Lineare Performance-Steigerungen sollte man auch nicht erwarten.

1) Option 1, the “traditional approach” hence is: several data discs and a machine with corresponding support/CPU power.

The 15 data discs (additionally to the OS disc) in this case are pre-configured for SQL data and SQL logs in 2 storage pools of 12 and 3 discs each.

The maximum IOPS also depend on the available CPU cores. One should not expect linear performance increases anyway.

Das Problem hierbei: Man verliert dabei fast jegliche Flexibilität.
Und zwar hinsichtlich der Ausbaustufe (Performance) und damit letztlich auch in der Preisgestaltung.
Denn um die insgesamt 16 Data Disks zu verwenden, muss man mindestens eine der 8-Core VM-Größen betreiben (A4, A7, A8, A9, D4, D13, D14, G3, G4 und G5), durchgängig.

Lediglich nach oben kann man Skalieren.
- Wer mehr als 16 zusätzliche Datenträger benötigt, muss eine VM mit 16 bzw. 32 Cores (G-Serie) einsetzen und erhält dann die Möglichkeit bis zu 32 bzw. 64 Data Disks neben der OS Disk einzusetzen.
Nach unten ist man dann auf jeden Fall preislich festgelegt.

The problem here is: You lose almost any flexibility, i.e. in terms of configuration level (performance) and ultimately also in terms of pricing.

Because in order to use the total of 16 data discs it is necessary to consistently operate one of the 8-core VM sizes (A4, A7, A8, A9, D4, D13, D14, G3, G4 and G5). It is only possible to scale upwards.

- If you need more than 16 additional data carriers you will have to apply a VM with 16 or 32 cores (G-series), which will enable you to apply up to 32 or 64 data discs besides the OS disc.
In terms of pricing, this will definitely set the limit downwards.

Damit dürfte das Ziel, Kosten durch Cloud-basierte Systeme zu sparen, jedoch schwieriger zu erreichen sein.
Die große Stärke des Cloud-basierten Ansatzes ist es aber, möglichst genau nur dann, wenn man eine bestimmte Leistung (oder Dienst) benötigt, diese anzufordern & zu erhalten, und wenn man sie nicht benötigt, diese auch nicht nutzlos „aktiviert“ zu belassen. Denn man bezahlt ja, was man „abonniert“, was hier nicht unbedingt auch das ist, was man wirklich nutzt.

Unser ideales System sollte also maximal skalierbar sein, und zwar sowohl nach oben und nach unten.

Wenn man sich einmal die Tabellen mit den derzeitigen (Stand 30.4.2015) virtuellen Maschinen und deren Performance-Kerngrößen vor Augen führt, wird es sicherlich klarer.
Es gibt derzeit 3 Serien auf dem Standard-Tier: A, D und G, wobei die G-Serie die mit der größten Power ist – und damit auch am teuersten.

This, however, makes it more difficult to reach the goal of saving costs through cloud-based systems.

Yet the great strength of the cloud-based approach is ideally only when requiring a specific performance (or service) to request and receive it, and when not needed, to not leave it idly “activated.” For you only pay for what you “subscribe” to, which in this case is not necessarily what you actually use.

Our ideal system, thus, should be maximally scalable, both upwards and downwards.

This will probably become clearer if you look at the charts with the current (status: 30 April 2015) virtual machines and their performance core sizes.

At the moment, the standard tier comprises 3 series: A, D and G, with the G-series being that of the greatest power – and hence the most expensive.

 

 

Zu sehen sind die Anzahl der dedizierten CPU-Cores, die Größe des Arbeitsspeichers, die Größe der Temp-Disk, und, ganz wichtig für die Skalierbarkeit: die Anzahl der maximal erlaubten Datenträger neben der OS-Disk selber.

Pro Datendisk erhält man bis zu 500 IOPS. Um mehr IOPS zu erhalten, benötigt man also mehr Data Disks – aber auch mehr CPU Cores.
Wenn man jedoch eine Maschine mit 16 Data Disks verwendet, kann man in Zeiten geringerer Auslastung kaum herunter-skalieren. Eine A2 beispielsweise für eine Art Minimal-Betrieb ist damit unerreichbar. Und wenn man noch mehr Data Disks benötigt um IO-Peaks abfangen zu können, schränkt man sich noch mehr ein und muss dauerhaft die teuersten Maschinen bezahlen.

You can see the number of dedicated CPU cores, the size of the working memory, the size of the temp disc, and, very important for the scalability: the number of the maximally permitted data carriers besides the OS disc itself.

Per data disc you get up to 500 IOPS. To receive more IOPS, thus, you need more data discs – but also more CPU cores. However, when using a machine with 16 data discs it will hardly be possible to scale downwards in times of low utilization rates. An A2, for example, will thus be unreachable for some kind of minimum operation. If you need more data discs to be able to accommodate IO peaks you will restrict yourself further and will have to continually pay for the most expensive machines.

Welche Alternativen gibt es? Wie kann man flexibel sein, um Kosten zu sparen, und gleichzeitig je nach Bedarf auf höhere Maschinen wechseln („Scale-Up“), und auf der anderen Seite nachts oder an Wochenenden seine Maschinen auf minimale CPU’s beschränkt („Scale-Down“).

Are there any alternatives? How to be flexible in order to save costs and at the same time switch to higher machines (“scale-up”) if necessary, and on the other hand restrict your machines to minimal CPUs during nighttime or on weekends (“scale-down”)?

2) Speichern der Data-Files direkt auf Azure Blob-Store

Der offensichtliche Vorteil ist hierbei, dass man keine Data-Disks benötigt – und die sind es, die die Skalierungsmöglichkeiten wesentlich beschränken. Anstelle der Data Disks werden die SQL Server Datenbankdateien direkt im Blob-Store gespeichert.

Die Datenbank-Erstellung kann dann so aussehen:

1) Saving data files directly on the Azure Blob Storage

The obvious advantage here is that data discs are not required – and these are what significantly limit scaling options. Instead of the data discs, the SQL Server database files are stored directly in the Blob storage.

The database creation can look something like this:

 

Diese Möglichkeit wird seit SQL Server 2014 unterstützt.
Hierbei erhält man ebenfalls pro File 500 IOPS, mit einem Limit von 20.000 je Storage Account, welches generell gilt.

Hier findet sich ein ausführliches Beispiel zur Einrichtung samt Code:
Create a SQL Server 2014 Database directly on Azure Blob storage with SQLXI

Der Nachteil bei dieser Variante ist in meinen Augen die Komplexität. Das Vorgehen mit Einrichtung der Shared Access Signature, die für den Zugriff auf den Blob-Container benötigt wird, ist nicht direkt trivial.

This option is supported since SQL Server 2014.
Here, too, you get 500 IOPS per file, with a general limit of 20.000 per storage account.

Here you can find a detailed example of the setup including a code:
Create a SQL Server 2014 Database directly on Azure Blob storage with SQLXI

The disadvantage of this option is, in my view, the complexity. The approach to creating the Shared Access Signature required for accessing the Blob container is not really trivial.

3) Speichern der Data-Files auf einer Azure Datei-Freigabe

Seit Mai letzten Jahres ist der Azure File-Service (Introducing Microsoft Azure File Service) als Vorschaufeature verfügbar.

Neben „echten“ Verzeichnissen unterstützt dieser Dienst auch Freigaben auf Basis von SMB 2.1.
Hier gibt es ein Maximum an 1000 IOPS pro Share. Das heißt ich benötige für dieselbe Menge an IOPS nur halb so viele Dateien wie für den Direkt-Zugriff auf Azure Blobs.
Wichtig ist, dass man zunächst das Preview-Feature für einen Storage-Account aktiviert hat.

3) Storing data files on an Azure File Share

Since May last year, the Azure file service (Introducing Microsoft Azure File Service) has been available as preview feature.

In addition to “real” directories, this service also supports releases on the basis of SMB 2.1.
Here we get a maximum of 1000 IOPS per share. I.e. for the same amount of IOPS only half as many files are required as for the direct access to Azure Blobs.
It is important to start by activating the preview feature for a storage account.

 

Danach erzeugt man per PowerShell die notwendigen Shares und verteilt seine Datenbank-Dateien darauf.

Next, you create the necessary shares per PowerShell and distribute your database files on them.

Auch hier gilt natürlich die Begrenzung auf die maximalen 20.000 IOPS je Storage Account. Aber der Zugriff ist in meinen Augen wesentlich einfacher.
Ein Nachteil dieser Variante ist, dass man dafür sorgen muss, dass der SQL Server Dienst erst startet, wenn die Freigaben über Netzwerk auch erreichbar sind.
Abseits von manchmal auftretenden Zugriffsproblemen, die sicherlich dem Preview-Stand geschuldet sind, ist diese Kombination in meinen Augen die am Einfachsten zu Administrierende, nachdem man sich einmal an einen automatisch gesteuerten verzögerten Dienst-Start gewöhnt hat.

Der Azure-File-Dienst wird zurzeit mit 50% Rabatt angeboten, und liegt damit rund 20% unter den Azure-Blob-Storage-Preisen.

A disadvantage of this option is that you have to make sure that the SQL Server service starts only when the shares are available via network.
Aside from occasionally occurring access problems that can probably be attributed to the preview status this combination, as I see it, is the easiest one to administrate – once you got used to the automatically controlled delayed service start. 

The Azure File service is currently offered with a 50% discount and is thus at around 20% below the Azure Blob storage prices.

Der Vorteil der beiden letzten Varianten liegt klar auf der Hand: man ist nicht an eine bestimmte Ausbaustufe des Systems gebunden, sondern kann zu bestimmten Zeiten seinen SQL Server auf einer Maschine mit weit mehr oder auch weit weniger CPU-Cores starten.

The advantage of the latter two options is evident: you are not bound to a particular configuration level of the system but you can start your SQL Server on a machine with far more or also far less CPU cores at certain times.

Ein Wort noch zum Transaktionsprotokoll:

Pro Datenbank gibt es nur eine Log-Datei (mehrere Log-Dateien würden sequentiell beschrieben werden und keinerlei Performance-Vorteile bringen). Dort bringen File-Shares direkt den Vorteil, anstelle von 500 IOPS 1000 IOPS zu liefern. Wenn das nicht ausreicht, bleibt leider nur der traditionelle Ansatz im Zusammenspiel mit Windows Server Storage Spaces: ein Striping aus mehreren Data-Disks für das Transaktionsprotokoll mit dem entsprechenden Skalierbarkeitsnachteil.

One final remark on the transaction log:

There is only one log file per database (several log files would be written to sequentially and not bring any performance advantages). There, the immediate benefit is that file shares deliver 1000 IOPS instead of 500 IOPS. If this is not sufficient, only the traditional approach combined with Windows Server Storage Spaces remains, unfortunately: striping of several data discs for the transaction log with the according scalability disadvantage.

Ich hoffe, ich konnte in diesem Artikel den für mich wichtigsten Vorteil des Cloud-basierten Ansatzes am Beispiel SQL Server etwas näherbringen. Sobald man sich einmal an das „Service-Konzept“ der Cloud gewöhnt hat, und traditionelle Denkmuster in der Form von „Ich benötige eine x-Core-Maschine“ hinter sich lassen kann, kann man durch das Kombinieren von verschiedenen Diensten, wie hier Virtuellen Maschinen und Dateidiensten, sehr kosten- und performance-effiziente Systeme bauen.

Und natürlich sind nicht immer IOPS das Maß der Dinge. Ich habe diese nur zur Vereinfachung über MB/sec gewählt und auch ohne auf die Request-Größe Rücksicht zu nehmen. Im Allgemeinen sind die Werte auf Basis von 4-K sequentiellen Lese-Requests zu verstehen. Das gilt aber für alle Speichermechanismen, die hier angesprochen wurden, und sollte daher zum Zwecke der Vergleichbarkeit ausreichen.

I hope this article made somewhat tangible what to me is the biggest advantage of the Cloud-based approach through the example of SQL Server.  As soon as you get used to the Cloud’s “service concept” and leave behind traditional thinking patterns like “I need an x-core machine” you can build very cost- and performance-efficient systems by combining different services, such as, as demonstrated above, virtual machines and file services.

Of course, IOPS are not always the ultimate performance indicator. I have chosen them over MB/sec for simplifying reasons alone and without taking into account the request-size. In general, the values are to be understood based on 4-K sequential reading requests. This applies to all storage mechanisms that have been addressed here and should therefore suffice for the purpose of comparability.

Wer Interesse hat, sich mit dem Thema noch mehr auseinanderzusetzen ist herzlich willkommen auf dem SQLSaturday Rheinland, einer 1-tägigen kostenfreien Konferenz für SQL Server am 13. Juni in Sankt Augustin.
Und am 12. Juni, also den Tag davor gibt es eine ebenso kostenfreie PreCon, „Hybrid IT Camp: Azure Szenarien & die eigene flexible Infrastruktur für jedermann“. (Short Link: http://bit.ly/sqlsat409hybridit), die ich zusammen mit Patrick Heyde von Microsoft (Blog/Twitter) durchführe.

Those who are interested in further dealing with this topic are welcome to join the free one-day SQL Server conference SQLSaturday Rheinland on 13 June in Sankt Augustin.

On 12 June, the day before, there will also be a free PreCon, Hybrid IT Camp: Azure Szenarien & die eigene flexible Infrastruktur für jedermann (“Azure scenarios & individual, flexible infrastructures for everybody”) (Short Link: http://bit.ly/sqlsat409hybridit), which I will be running with Patrick Heyde (Blog/Twitter) from Microsoft.

Hier noch eine Liste an weiterführenden Links:

Below is a list for further reading:

 Have fun on Azure cloud

 Andreas

PS: Noch ein explizites Dankeschön an Patrick Heyde für seine wertvollen Tipps und Mentoring in Microsoft Azure – auch ich musste mich ja erst einmal an eine neue Denkweise gewöhnen :-)

P.S.: A big “thank you” goes to Patrick Heyde for his valuable tips and mentoring in Microsoft Azure – I, too, had to get used to a new way of thinking :-)

Upcoming Conferences: SQLSaturdays in Denmark and Portugal. – Presenting In-Memory OLTP Deep-Dive for Administrators

 

(de)
Im März und April finden 2 europäischen SQLSaturdays statt, die Potential zu einem Geheimtipp haben:

Am 29. März in Kopenhagen, Dänemark
ind am 12. April in Lissabon, Portugal.

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)
In March and April, 2 European SQLSaturdays take place, which have the potential for a real insiders’ tip:

On March 29th in Copenhagen, Denmark
and April 12th in Lisbon, Portugal.

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.

SQLSaturday275_Denmark

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:

Die vollständige Agenda befindet sich hier: www.sqlsaturday.com/275/schedule.aspx

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!

SQLSaturday267_Portugal

In Portugal sind dabei:

Die vollständige Agenda befindet sich hier:

www.sqlsaturday.com/267/schedule.aspx

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?
Nachdem ich mich nun seit November 2013, wo ich die neue Technologie in Deutschland erstmalig öffentlich präsentierte, eingehend mit eXtreme Transactional Processing, der neuen, integrierten, In-Memory Engine des SQL Server beschäftige, gibt es nun den Deep-Dive für Administratoren:

And my humble self, what am I presenting?
After I have been engaged deeply with eXtreme Transactional Processing, the new, integrated, In-Memory Engine of SQL Server, since November 2013, where I presented this new technology for the first time publically in Germany, I will now give a Deep-Dive for Administrators:

 

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

PreCon Performance Analysis & Tuning Techniques at SQLSaturday in Istanbul

PreCon Performance Analyse & Tuning Techniken auf dem SQLSaturday in Istanbul

(DE)

Was für ein Jahr: nachdem ich bereits  3 SQLSaturdays (Dänemark, Niederlande, Deutschland) hinter mir habe, werde ich nun auch auf dem SQSaturday #258 (5. Okt.) in Istanbul sprechen.
Und nach meiner ersten PreCon dieses Jahr auf dem SQLSaturday in Deutschland, die ich zusammen mit Mladen Prajdić, zum Part “XEvents” gegeben habe, werde ich dieses mal einen ganzen Tag PreCon (4. Okt.) zum Thema “Performance Analyse & Tuning Techniken” geben!

(EN)

What a year: after already 3 SQLSaturdays (Denmark, Netherlands, Germany) behind me, I will now also speak at SQSaturday #258 (Oct. 5th) in Istanbul, Turkey.
And after my first PreCon this year at the SQLSaturday in Germany, which I was co-presenting together with Mladen Prajdić, on the part “XEvents”, I will now be giving a full day PreCon (Oct. 4th) on “Performance Analysis & Tuning Techniques”!

SQLSaturday258_Istanbul_Speaking

Ich freue mich wirklich sehr über das Thema und zugleich auch über den Austragungsort.
Istanbul ist für Geschichts- & Fotografie Enthusiasten wie mich ein absolutes Muss. (Meine Facebook Wand erwartet wieder tolle Bilder :)

Zurück zum Technischen: Hier ist die Vortrags-Beschreibung & Agenda:

Sei bereit für einen vollen Tag Abtauchen in SQL Server Performance Analyse.
Diese Session konzentriert sich auf Werkzeuge und Techniken und wie man häufige Probleme löst.
Wir starten auf Betriebssystem-Ebene mit PerfMon, und steigen dann weiter ein in SQL Server Wait Stats Analyse für Flaschenhalsanalyse. Wir verwenden verschiedene Werkzeuge wie SQL Trace & Profiler und den Nachfolger: Extended Events für detaillierte Analyse und sehen auch, welche anderen Tools von Codeplex zur Verfügung stehen.
Wir untersuchen den Plan Cache und Indexierung mithilfe von DMVs und steigen schließlich auch in Sperren und Parallelitätsprobleme ein.
Macht Euch auf viele Demos und einen Deep Dive in Kern-Konzepte von SQL Server gefasst.“

I am really excited about the topic and location at the same time. Istanbul is a must-see city for history- & photography enthusiasts like me. (My Facebook wall is awaiting great images :)

Back to the technical stuff. Here is the session description & agenda:

“Be ready for a full day of diving into SQL Server Performance Analysis.
This session is focussed on tools and techniques and how to resolve common problems.
We will start on Operating System level using Perfmon and advance into SQL Server Wait Stats analysis for identifying bottlenecks. We will use different tools like SQL Trace & Profiler and the successor: Extended Events for detailed analysis and see what other tools are available from codeplex. We will examine the Plan cache and Indexing using DMVs and finally get into locking & concurrency problems.
Expect lots of demos and a deep dive into core concepts of SQL Server.”

Enthaltene Themen:

  • Performance Monitor für Server-Ebenen Performance Analyse
  • Wait-Stats Methodik
  • SQL Trace & Profiler bis Extended Events für Arbeitslast & Abfrage-Analyse
  • Tempdb Performance Optimimierung
  • Plan-Cache Analyse
  • Index & Statistiken, Analyse & Tuning
  • Sperren & Blockade Analyse / Parallelitätsprobleme

 

Included Topics:

  • Performance Monitor for Server-Level Performance Analysis
  • Wait-Stats Methology
  • SQL Trace & Profiler to Extended Events for Workload & Query-Analysis
  • Tempdb Performance Optimization
  • Plan-Cache Analysis
  • Index & Statistics, Analysis & Tuning
  • Locking & Blocking Analysis / Concurrency problems

And hier ist der Link zur PreCon (4. Okt.) Registrierung: www.eventbrite.com/event/7619115981

Wer ein Wochenende in einer historischen Stadt voller Sehenswürdigkeiten mit deep-dive SQL Server Themen kombinieren möchte, ist gern willkommen :-)

And here is the link to the PreCon (4th of Oct.) registration:
www.eventbrite.com/event/7619115981

If you want to combine a week-end in a city of history and beauty, with some deep-dive SQL Server topics, come and join us :-)

Neben der PreCon werde ich auch einen Vortrag am Samstag (5. Okt) halten.

Thema: Sicherheit

Titel: "SQL Attack…ed” – SQL Server under attack."

Und auch zwei weitere Kollegen von der PASS Deutschland e.V. werden dabei sein: Tillmann Eitelberg und Oliver Engels.

Besides the PreCon I will also hold a presentation on Saturday (5th of Oct.).

Topic: Security

Title: "SQL Attack…ed” – SQL Server under attack."

And also two other colleagues from the German PASS will be there: Tillmann Eitelberg and Oliver Engels.

 See you in Istanbul.

 Andreas

Survey: Which Tracing and Analysis-Tools do you use for SQL Server?

 Umfrage: Welche Tracing und Analyse-Tools verwendet ihr für SQL Server?

(DE)
In meiner Session „Hasta la vista Profiler – Tracing with Extended Events“, die ich nun seit über einem Jahr bei diversen Gelegenheiten gehalten habe, habe ich die Zuhörer meist gefragt, welche Monitoring-Tools sie bisher verwendeten.

Ich möchte diese Stelle einmal nutzen, um einmal breit zu erheben, welche Werkzeuge von SQL Server Professionals zur Protokollierung und Analyse von Performance-Problemen verwendet werden. Um ein differenzierteres Bild zu erhalten, ist auch eine Einordnung in „Administrator“, und „Entwickler“ sicherlich interessant.

Die Ergebnisse werde ich auf dem kommenden SQLSaturday #230 am 12. Juli in St. Augustin auf der PreCon, „From SQL Traces to Extended Events. The next big switch.“, die ich zusammen mit Mladen Prajdic gebe, präsentieren, und später mit Sicherheit noch auf dem PASS Camp sowie bei weiteren Gelegenheiten der deutschen und auch internationalen PASS - und natürlich hier in meinem Blog selber. Die Antworten können natürlich auch anonym abgegeben werden.

Im Folgenden liste ich eine Reihe von geläufigen Tools auf.

Bitte gebt Eure Stimme einfach als Kommentar wie im folgenden Beispiel ab - ich gebe ALLE Antworten (außer reinem Spam und Werbung) frei, auch Oracle-Tools ;-)

(EN-US)
In my session Session „Hasta la vista Profiler – Tracing with Extended Events“, that I have been presenting at several occasions, I used to ask the audience, which tools they used for monitoring so far.

I would like to use this platform to survey on a broader range, which tools are being used by SQL Server professionals for logging and analyzing performance-problems. In order to get a differentiated result, a classification in “Administrator” and “Developer” is certainly also interesting.

The results will be presented first at the upcoming SQLSaturday #230 on the 12th of Juli in St. Augustin/Germany at the PreCon, From SQL Traces to Extended Events. The next big switch.“, which I will be giving together with Mladen Prajdic gebe, and later on certainly also at the PASS Camp and other occasions of the German and international PASS - and of course also here in my blog itself. You can of course also keep your comments anonymously.

In the following I am listing a series of common tools.

Please simply provide your vote as a comment like in the following example – I will publish ALL answers (except plain spam/ads), even Oracle-Tools ;-)

„Administrator and/or Developer“
A 3
B 1
D 2
L 0

Dabei stehen die Zahlen für // The numbers stand for:

3: fast immer // almost all the time
2: manchmal // sometimes
1: selten // rarely
-1: das Tool ist mir unbekannt // I haven't hear of this tool

- Die Auswahl “unbekannt” auf Anregung eines Lesers (Danke!).

Werkzeuge, die nie verwendet werden gerne einfach weglassen.

Und das ist die Auswahl an Tools:

The choice “unknown” at a reader’s suggestion (Thank you!).

Tools that are not used can be simply left out.

And these are the choices of tools:

A) ClearTrace
B) Datenbankoptimierungsratgeber // Database Engine Tuning Advisor
C) Dynamic Management Views (DMV's)
D) Event Notifications
E) Extended Events unter 2008/R2
F) Extended Events unter 2012
G) Management Datawarehouse (MDW) / Data Collection Reports
H) PAL
I) PerfMon
J) RML Utilities / ReadTrace
K) SQL Diag
L) SQL Profiler
M) SQL Trace
N) Software von Drittherstellern – siehe auch O) // Third-Party Tools - also see O)
O) Andere // Other: …

- Die Reihenfolge ist alphabetisch und soll nichts implizieren :-)

Meine Liste enthält ausschließlich mit SQL Server gelieferte, sowie codeplex-Tools, es können aber auch andere angegeben werden. (Punkt „O“)

Mir ist natürlich völlig bewusst, das auch die SQL Server Version und ggf. Edition Einfluss auf die zur Verfügung stehende Auswahl hat, aber ich möchte die Umfrage auch nicht zu komplex gestalten. Das Ziel, einen Eindruck über die Verbreitung der Tracing-Gewohnheiten zu erreichen, wird so sicherlich erreicht werden können :-)

Vielen Dank an dieser Stelle schon einmal für die Beteiligung - ich bin sicher, dass es auch viele andere Community-Mitglieder gern sehen, was andere so für ihre Arbeit einsetzen.

- The order is alphabetical and not supposed to imply anything :-)

My list contains solely tools shipped with SQL Server and from codeplex, but feel free to add others (point “O”)

I am totally aware that also the SQL Server version and possibly edition have an influence on the choices available, but I also do not want to make the survey all too complex. The aim, to gain an impression on the prevalence and practices of tracing-habits will certainly be reached like that, too :-)

Thank you very much for participating – I am sure that many members of the SQL Server Community are also interested to see, what others use for their work.

Andreas

1 2