Click here to monitor SSC

Fabiano Amorim Fabiano Amorim
Fabiano is fascinated by the SQL Server Query Processor and the way it works to optimize queries, procedures and functions. He graduated as a Technical Processor from Colégio Bezerra de Menezes, SP- Brazil, and has worked for several years with SQL Server, focusing in creating Data Warehouses and optimizing T-SQL codes for many companies in Brazil and Argentina. Fabiano is a SQL Server MVP, MCP for SQL Server 2000, MCTS and MCITP Data Base Developer for SQL Server 2005 and 2008. He also is actively involved in SQL Server community though forums such as MSDN and TechNet Brazil, writes articles for Simple-Talk and SQL Server Magazine Brazil, and he also presents online Webcasts and In-Person events for Microsoft Brazil. His blog is on http://blogfabiano.com
Window Functions in SQL Server: Part 3: Questions of Performance
by Fabiano Amorim | 04 January 2012 |
A SQL expression may look elegant on the page but it is only valuable if its performance is good. Do window functions run quicker than their conventional equivalent code? Fabiano gives a definitive answer. Read more...
Window Functions in SQL Server: Part 2-The Frame
by Fabiano Amorim | 24 November 2011 |  3 comments |
Fabiano continues his introduction to SQL Server's implementation of the window functions by giving a history of what got implemented and when, and explaining the concept of the 'Frame' in a window function, with plenty of examples. Read more...
Window Functions in SQL Server
by Fabiano Amorim | 27 October 2011 |  9 comments |
When SQL Server introduced Window Functions in SQL Server 2005, it was done in a rather tentative way, with only a handful of functions being introduced. This was frustrating, as they remove the last excuse for cursor-based operations by providing aggregations over ... Read more...
Complete Showplan Operators
by Fabiano Amorim | 10 October 2011 |  4 comments |
Fabiano Amorim has taken the time to reallv drill into the behavior of a small set of execution plan operators in an effort to explain the optimizer's behavior. He's explored why things happen, how you can change them, positively or negatively, and he's done it all... Read more...
Statistics on Ascending Columns
by Fabiano Amorim | 01 September 2011 |  12 comments |
It comes as rather a shock to find out that one of the commonest circumstances in an OLTP database, an ascending primary key with most querying on the latest records, can throw the judgement of the Query Optimiser to the extent that perfomance nose-dives. Fabiano... Read more...
Questions about SQL Server Distribution Statistics
by Fabiano Amorim | 23 June 2011 |  6 comments |
Fabiano was asked a couple of questions about SQL Server Distribution Statistics. Having given an answer based on his current knowledge, he then decided to find out for himself whether what he'd said was right, and started an epic journey of exploration into... Read more...
ShowPlan Operator of the Week - Split, Sort, Collapse
by Fabiano Amorim | 11 April 2011 |  7 comments |
'Split, Sort & Collapse' is, happily, not a description of the intrepid Fabiano after his epic series of articles about the ShowPlan operators. With renewed stamina, Fabiano continues his mission to describe all the major operators by explaining the Trivial Plan and... Read more...
Lipoaspiration in your SQL Server Database
by Fabiano Amorim | 03 March 2011 |  4 comments |
Once, when disk space was at a premium, DBAs fought hard to keep the size of their database down. Now there seems less motivation to 'fight the flab' of a database. Fabiano Amorim was watching television recently when the subject matter, cosmetic surgery, gave him... Read more...
Showplan Operator of the Week - Merge Interval
by Fabiano Amorim | 11 January 2011 |  5 comments |
When Fabiano agreed to undertake the epic task of describing each showplan operator, none of us quite predicted the interesting ways that the series helps to understand how the query optimiser works. With the Merge Interval, Fabiano comes up with some insights about... Read more...
ShowPlan Operator of the Week - Merge Join
by Fabiano Amorim | 22 November 2010 |  7 comments |
Did you ever wonder how and why your indexes affect the performance of joins? Once you've read Fabiano's unforgettable explanation, you'll learn to love the MERGE operator, and plan your indexes so as to allow the Query Optimiser to use it. Read more...
Showplan Operator of the Week - SORT
by Fabiano Amorim | 11 October 2010 |  11 comments |
Fabiano introduces another ShowPlan operator that is used to build a query plan, or perform an operation specified in the DML. Once again, Fabiano demonstrates why it is important to be aware of these operators when getting queries to perform well. Read more...
Showplan Operator of the Week - Stream Aggregate
by Fabiano Amorim | 10 September 2010 |  4 comments |
Fabiano continues his mission to explain the Query Optimiser in practical terms, describing, one week at a time, all the major Showplan Operators used by SQL Server's Query Optimiser to build the Query Plan. He discusses the Stream Aggregate function and shows how... Read more...
Showplan Operator of the Week - Row Count Spool
by Fabiano Amorim | 06 July 2010 |  1 comment |
The Row Count Spool operator is a simple component in an execution plan that can make an enormous difference to SQL query plans that would otherwise read a table on every row of the inner input to a nested loop. As this is a common type of query, it illustrates the... Read more...
Operator of the Week - Index Spool
by Fabiano Amorim | 25 June 2010 |  1 comment |
If you've ever wondered what happens to your queries if you're not conscientious about creating indexes, then Fabiano Amorim has yet another nugget of Execution Plan wisdom for you. The Query Optimizer's solution is to use the Nonclustered Index Spool, and we're... Read more...
Showplan Operator of the Week - Lazy Spool
by Fabiano Amorim | 10 June 2010 |
Continuing to illuminate the depths of SQL Server's Query Optimizer, Fabiano shines a light on the sixth major Showplan Operator on his list: the Lazy Spool. What does the Lazy Spool do that's so special, how does the Query Optimizer use it, and why is it so Lazy?... Read more...
Operator of the Week - Spools, Eager Spool
by Fabiano Amorim | 20 May 2010 |  10 comments |
For the fifth part of Fabiano's mission to describe the major Showplan Operators used by SQL Server's Query Optimiser, he introduces the spool operators and particularly the Eager Spool, explains blocking and non-blocking and then describes how the Halloween... Read more...
Showplan Operator of the Week - BookMark/Key Lookup
by Fabiano Amorim | 07 May 2010 |  5 comments |
Fabiano continues in his mission to describe the major Showplan Operators used by SQL Server's Query Optimiser. This week he meets a star, the Key Lookup, a stalwart performer, but most famous for its role in ill-performing queries where an index does not 'cover'... Read more...
Showplan Operator of the Week - Compute Scalar
by Fabiano Amorim | 28 April 2010 |  1 comment |
The third part of Fabiano's mission to describe the major Showplan Operators used by SQL Server's Query Optimiser continues with the 'Compute Scalar' operator. Fabiano shows how a tweak to SQL to avoid a 'Compute Scalar' step can improve its performance. Read more...
Showplan Operator of the Week - Concatenation
by Fabiano Amorim | 22 April 2010 |
Fabiano continues in his mission to describe, one week at a time, all the major Showplan Operators used by SQL Server's Query Optimiser to build the Query Plan. This week he gets the Concatenation operator . Read more...
Showplan Operator of the week - Assert
by Fabiano Amorim | 14 April 2010 |
As part of his mission to explain the Query Optimiser in practical terms, Fabiano attempts the feat of describing, one week at a time, all the major Showplan Operators used by SQL Server's Query Optimiser to build the Query Plan. He starts with Assert Read more...
SQL Server Intellisense VS. Red Gate SQL Prompt
by Fabiano Amorim | 18 March 2010 |  12 comments |
Fabiano Amorim is hooked on today's Integrated Development Environments with built-in Intellisense, so he looked forward keenly to SQL Server 2008's native intellisense. He was disappointed at how it turned out, so turned instead to SQL Prompt. Fabiano explains... Read more...
13 Things You Should Know About Statistics and the Query Optimizer
by Fabiano Amorim | 07 January 2010 |  22 comments |
Fabiano launches into a sound technical explanation of the way that the query optimiser works in SQL Server with a mention of Brazilian Soccer stars and young ladies on Copacabana beach. You'll never quite think of statistics, execution plans, and the query... Read more...
Query Optimizer and Cartesian Products
by Fabiano Amorim | 22 October 2009 |  10 comments |
In his continuing quest to bring a deeper understanding of Query Optimizer to the world at large, Fabiano takes a moment to point out a potential pitfall you may encounter. A light read, but one worth perusing. Read more...
Data Correlation Optimization Internals
by Fabiano Amorim | 14 October 2009 |  4 comments |
Having adroitly introduced us, in his previous article, to the Date Correlation ability of the Query Optimizer, Fabiano discusses the inner workings of this little-known feature in order to explain exactly how Date Correlation works. Read more...
The Query Optimizer: Date Correlation Optimisation
by Fabiano Amorim | 01 October 2009 |  11 comments |
In SQL Server 2005, a feature was introduced that was hardly noticed, but which might make a great difference to anyone doing queries involving temporal data. For anyone doing Data Warehousing, timetabling, or time-based pricing, this could speed up your queries... Read more...
Over 400,000 Microsoft professionals subscribe to the Simple-Talk technical journal. Join today, it's fast, simple, free and secure.

Join Simple Talk