- Gratuit : téléchargez l'application Amazon pour iPhone, iPad, Android ou Windows Phone ou découvrez la nouvelle application Amazon pour Tablette Android !
- Publiez votre livre sur Kindle Direct Publishing en format papier ou numérique : C'est simple et gratuit et vous pourrez toucher des millions de lecteurs. En savoir plus ici .
- Plus de 10 000 ebooks indés à moins de 3 euros à télécharger en moins de 60 secondes .
SQL Performance Explained (Anglais) Broché – 2012
|Neuf à partir de||Occasion à partir de|
Offres spéciales et liens associés
Les clients ayant acheté cet article ont également acheté
Descriptions du produit
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.
Covers all major databases: Oracle® Database, SQL Server®, PostgreSQL, MySQL
What readers say:
"This book is definitively worth having in the company library." - Joe Celko
Aucun appareil Kindle n'est requis. Téléchargez l'une des applis Kindle gratuites et commencez à lire les livres Kindle sur votre smartphone, tablette ou ordinateur.
Pour obtenir l'appli gratuite, saisissez votre adresse e-mail ou numéro de téléphone mobile.
Détails sur le produit
Dans ce livre(En savoir plus)
Quels sont les autres articles que les clients achètent après avoir regardé cet article?
Commentaires en ligne
Meilleurs commentaires des clients
rien d'autre à ajouter si ce n'est que je le conseille
Commentaires client les plus utiles sur Amazon.com (beta)
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
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"
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.
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.
Optimizing SQL, writing performant queries, is something that every developer dealing with databases ought to know how to do but it is not something taught in any SQL class I've seen or, if it is, it's always either taught steeped in an RDBMS-specific way that makes the knowledge difficult to apply to other databases or so academically that it's hard to know how any of it applies. This book covers SQL in general but, importantly, makes it concrete by providing examples in *multiple* popular databases. It also takes the time to explain peculiarities of different implementations, by which I mostly mean Oracle, which is something all general SQL tutorials seem to avoid.
Although nothing in here was a revelation to me for a lot of people it will be, and even I found nuggets of usefulness despite having a decade of experience in database performance tuning. This book lays out in simple, clear terms the things you need to know and is written in sufficiently non-arcane language that even an entry level developer should be able to follow it. I am certainly going to use this book as my way of explaining query optimization to all future developers I must teach, because it expresses these ideas far more lucidly than I have been able to manage.
5/5, would gather statistics again