Möchten Sie verkaufen? Hier verkaufen
Der Artikel ist in folgender Variante leider nicht verfügbar
Keine Abbildung vorhanden für
Keine Abbildung vorhanden

Den Verlag informieren!
Ich möchte dieses Buch auf dem Kindle lesen.

Sie haben keinen Kindle? Hier kaufen oder eine gratis Kindle Lese-App herunterladen.

SQL Performance Explained: Everything developers need to know about SQL performance [Englisch] [Taschenbuch]

Markus Winand

Erhältlich bei diesen Anbietern.


30. Juli 2012
SQL Performance Explained helps developers to improve database performance. The focus is on SQL—it covers all major SQL databases without getting lost in the details of any one specific product. Starting with the basics of indexing and the WHERE clause, SQL Performance Explained guides developers through all parts of an SQL statement and explains the pitfalls of object-relational mapping (ORM) tools like Hibernate. Topics covered include: • Using multi-column indexes • Correctly applying SQL functions • Efficient use of LIKE queries • Optimizing join operations • Clustering data to improve performance • Pipelined execution of ORDER BY and GROUP BY • Getting the best performance for pagination queries • Understanding the scalability of databases Its systematic structure makes SQL Performance Explained both a textbook and a reference manual that should be on every developer’s bookshelf.



Über den Autor und weitere Mitwirkende

Markus Winand has been developing SQL applications since 1998. His main interests include performance, scalability, reliability, and generally all other technical aspects of software quality. Markus currently works as an independent trainer and coach in Vienna, Austria.

Welche anderen Artikel kaufen Kunden, nachdem sie diesen Artikel angesehen haben?

In diesem Buch (Mehr dazu)
Ausgewählte Seiten ansehen
Buchdeckel | Copyright | Inhaltsverzeichnis | Auszug | Stichwortverzeichnis
Hier reinlesen und suchen:

Eine digitale Version dieses Buchs im Kindle-Shop verkaufen

Wenn Sie ein Verleger oder Autor sind und die digitalen Rechte an einem Buch haben, können Sie die digitale Version des Buchs in unserem Kindle-Shop verkaufen. Weitere Informationen


Es gibt noch keine Kundenrezensionen auf Amazon.de
5 Sterne
4 Sterne
3 Sterne
2 Sterne
1 Sterne
Die hilfreichsten Kundenrezensionen auf Amazon.com (beta)
Amazon.com: 4.8 von 5 Sternen  4 Rezensionen
5 von 6 Kunden fanden die folgende Rezension hilfreich
4.0 von 5 Sternen The title doesn't lie 11. September 2013
Von Daniel - Veröffentlicht auf Amazon.com
To begin with I should point out that I was given the book by the author and promised to review it. The author has however had no insight into the contents of this review and have made no attempts whatsoever to influence it.

With a title like "SQL Performance Explained" it might seem strange that the book is less than 200 pages long. Don't let the page count fool you though, this book does a very good job of covering a lot of ground. The small tip boxes scattered around the pages alone have more valuable content than many other books.

The author is well known for his expertise on indexing and that obviously shines through in the book, but the topics discussed are not at all limited to indexing. The wide set of topics covered include efficient indexing and querying, join algorithms, execution plans as well as the anatomy of indexes. Care is also taken to discuss how data volumes affect query performance and database scalability. The focus of the writing is very much geared towards developers, many chapters include code samples in many common languages apart from the SQL.

The book covers specifics about the major four database engines which is as much a strength as it is a potential weakness. Anyone interested only in database X might think this book is too broad, which would be unfortunate. While most readers probably focus on their database of choice and skip over sections on the competing ones it is never a bad idea to learn more about the competition. Not to mention the great fit it is for consultants who see a wide array of environments on different assignments.

To conclude, this book is vital for any database developer, DBA as well as anyone interested in database performance. It's unlikely to be the only book in your professional library but is highly likely to be one that sticks in your memory and that you read cover to cover. It is highly likely to be your go to book. The promise the title gives is held, SQL performance is explained
1 von 1 Kunden fanden die folgende Rezension hilfreich
5.0 von 5 Sternen Must-read for every developer 26. September 2013
Von Ronald Ploeger - Veröffentlicht auf Amazon.com
The preface of the book already states that "Database indexing is a development task." This is because to define an optimal index one must understand how the application queries the data.

Every developer should read this book. It will show you how to read execution plans and how to create indices for a wide range of scenarios.

Mr. Winand has an easy to follow writing style and this book will give you a good understanding of b-tree indices guiding you through many scenarios using easy to follow examples for multiple databases.
1 von 1 Kunden fanden die folgende Rezension hilfreich
5.0 von 5 Sternen Knowing about proper indexing covers 90% of what anyone needs to know about SQL performance 17. September 2013
Von Lukas - Veröffentlicht auf Amazon.com
SQL is a very complex topic. While most developers still interact with SQL in one way or another, many find it an increasingly hard to master technology because SQL seems to perform so much magic.

Markus Winand, creator of [...] busts a lot of myths by explaining in very simple terms that all you need to understand is proper indexing. His book SQL Performance Explained, which is available also in German and French, reads like a very easy text book, starting by explaining the most popular and most common indexing structure: the B-Tree. From there on, the book puts new things in logical relation to topics already covered. As such, it helps the reader find their way to understanding the most complex problems faced in every day SQL development. At the same time, the amount of information per page is extremely dense, making every sentence an important piece of the puzzle. This is quite remarkable for such a technical book, dealing with such a dry matter.

Markus proves to be very knowledgeable in his writings, not only with respect to SQL as a language itself, but also concerning software architecture in general. He puts database interaction in relation to overall scalability, and also knows his ways with ORMs in various languages. This is interesting for those developers who are using a "higher levels" of abstraction over their database, and are thus facing the fine-tuning of third-party generated SQL.

The book really shines once the reader goes into the depths of understanding performance implications of proper indexing to each of the SQL SELECT statement's various clauses. Even after years of tuning Oracle execution plans, I've had many "aha" effects when learning about things like

- How Oracle's not indexing NULL can lead to very surprising full table scan operations, because Oracle has to check the table for records that are not in the index.
- How using bind values becomes increasingly important when many JOIN operations are involved, because the query optimizer complexity increases with the factorial of the number of joined tables.
- How nested loops, hash joins, sort merge joins really work, and when they work best.
- How to design queries to produce index-only scans, when all columns from the predicates and the projection are indeed contained in an applicable index.

The most interesting "aha" effect to me, however, was triggered by learning that indexes can be used for their data clustering effects. If properly designed, an index will "pre-sort" related values prior to actually executing GROUP BY, ORDER BY, or FETCH FIRST clauses. This can lead to instant ORDER BY results, if the ORDER BY clause matches the chosen index definition. Markus also busts the myth that Oracle's Index-Organized Tables are actually useful for this purpose. They're mostly not useful.
If clustering and pipelining effects do not apply, one can still choose to use what Markus calls the "SEEK method", where partial results are fetched by omitting the OFFSET .. FETCH FIRST clause and using much faster regular predicates instead. The "SEEK method" has two advantages:

- It is extremely fast, as no rows have to be skipped before reaching the "OFFSET".
- It is stable, as the "OFFSET" doesn't shift when new records are inserted during paging.

What I am looking forward to in a future edition of Markus' book is some more depth in the chapters explaining the influence of indexes with respect to performance of INSERT, UPDATE, DELETE statements (and maybe MERGE?). It would also be great, if some additional insight into DB2 and Sybase could be given. The current edition essentially covers the popular Oracle, PostgreSQL, SQL Server, MySQL databases.

Having read this book, I feel much more at ease with designing databases for performance and with analyzing execution plans for fine-tuning. Even with quite a bit of experience, this book has generated some new knowledge, while at the same time, I think it is very easy to read for SQL tuning beginners as well.

Or to put it in Markus' terms: "This book should have been written 10 years ago"
5.0 von 5 Sternen Easy to follow, yet comprehensive coverage on how indexes work, plenty of gotchas 20. November 2013
Von A. Zubarev - Veröffentlicht auf Amazon.com
To the best of my knowledge this is the only book on the market that covers the four major relational database engine’s data storage implementations and namely indexes. I must stress the words data engine because this book deeply covers only one aspect of a relational database – the data management and storage improvements from the indexing prospective, nothing else.

But do not be deceived by its limited content – the indexing part is the most complex, yet a cornerstone part to shipping a successful software product which unfortunately remains a complete black box to most, even seasoned developers! Yet, the book covers in depth.

To expand more, indexing is an often overlooked or even ignored aspect, or at best a post deployment task which typically gets triggered by customers calling in to express how slow the application performance is.

For a software shop then to introduce changes to an application accessing a database poorly at a stage when it was just fully tested and signed off then deployed to production will cost a whole lot more money and headaches than if it were still in early stages of development, not to mention how little time typically is left to make it fast before the customers pull out!

I must tell, I totally agree with Markus – he has correctly stated in the book that it should be the developer, not the Database Administrator who is responsible for the database indexes.

I hope I have enticed you already to get a copy of this book. I personally liked it a lot, especially the second part of it.

I need to also convey to whoever reads my review - the ORM implementations have received its fair portion of the blame, which I am happy Markus had the courage to bring up. Read the book to find out more.

Overall, I admire how the author succeeded to remain neutral in tone and details by not expressing any bias toward any of the four big database vendors.

Even in light of literally dozens of NoSQL (key-value pairs) databases popping up on the landscape today, the book remains very much to the point and actual because the influx of the webscale or sensor data is definitely taking its tall on poorly performing queries.

If somebody would ask me to sum up the book review in a few words I would say this is the book to help you choose the proper RDBMS for your project. If you are already tied to a specific database engine then read this book as soon possible before you develop against it too far to avoid costly performance mistakes.

One suggestion I have to Markus is to remedy the omission on a relatively new feature - the Columnstore Index (a SQL Server 2012 feature). This type of an index promises unforeseen data retrieval speeds and gets even improved further in SQL Server 2014.

Nevertheless, 5 out of 5 from me.
Waren diese Rezensionen hilfreich?   Wir wollen von Ihnen hören.

Kunden diskutieren

Das Forum zu diesem Produkt
Diskussion Antworten Jüngster Beitrag
Noch keine Diskussionen

Fragen stellen, Meinungen austauschen, Einblicke gewinnen
Neue Diskussion starten
Erster Beitrag:
Eingabe des Log-ins

Kundendiskussionen durchsuchen
Alle Amazon-Diskussionen durchsuchen

Ähnliche Artikel finden

Ihr Kommentar