• subscribe


Itzik Ben-Gan

Itzik Ben-Gan is a contributing editor to SQL Server Pro and a cofounder of SolidQ. He teaches, lectures, and consults internationally. He's a SQL Server MVP and is the author of several books about T-SQL, including Microsoft SQL Server 2012 High-Performance T-SQL Using Window Functions (Microsoft Press).

Click here to check out Itzik's Puzzled by T-SQL blog.
Email: itzik@solidq.com

My Latest Content
My Latest Comments



Author Articles

T-SQL Best Practices, Part 2

By Itzik Ben-Gan, 05/22/2012

Itzik continues his discussion of T-SQL best practices; he discusses cloud compatibility, date and time best practices, the importance of writing in a standard way, and ...

T-SQL Best Practices, Part 1

By Itzik Ben-Gan, 04/20/2012

Some T-SQL best practices include thinking in a relational way, always remembering NULLs and the three-valued-logic, realizing the full implications of using the NOLOCK hint and ...

Understanding Query Plans

By Itzik Ben-Gan, 03/19/2012

A key element in query tuning is using the execution plan to determine the reasons for poor query performance. SQL Server provides rich information about query plans in the ...

SQL Server 2012: How to Write T-SQL Windows Functions, Part 3

By Itzik Ben-Gan, 01/26/2012

Itzik wraps up his discussion of SQL Server 2012's window functions by focusing on optimization. He provides indexing guidelines for optimal performance, and he describes cases ...

Microsoft SQL Server 2012: How To Write T-SQL Window Functions, Part 2

By Itzik Ben-Gan, 12/13/2011

SQL Server 2012 enhances support for window aggregate functions. In part 2 of this series, Itzik discusses window offset functions and window distribution functions.

How to Use Microsoft SQL Server 2012's Window Functions, Part 1

By Itzik Ben-Gan, 11/21/2011

SQL Server 2012 enhances support for window aggregate functions by introducing window order and frame clauses, support for offset functions, and support for window distribution ...

T-SQL String Manipulation Tips and Techniques, Part 2

By Itzik Ben-Gan, 10/26/2011

Itzik explains how to handle type conversions when you need to convert a character string value to another type, in both SQL Server 2008 and SQL Server Denali.

T-SQL String Manipulation Tips and Techniques, Part 1

By Itzik Ben-Gan, 09/14/2011

Learn about some common string manipulation tasks, such as counting occurrences of a substring within a string, verifying an exact number of occurrences of a substring within a ...

Use T-SQL to Generate a Sequence

By Itzik Ben-Gan, 08/16/2011

Itzik presents a real-world T-SQL challenge that involves generating a sequence of license plates.

SQL Server 2005’s APPLY, Part 2

By Itzik Ben-Gan, 07/25/2011

More advanced uses of the APPLY table operator include efficient parallelism of queries, reuse of column aliases, aggregate over columns, unpivoting, and inlining scalar functions.

SQL Server 2005’s Apply, Part 1

By Itzik Ben-Gan, 06/20/2011

The APPLY table operator accepts two table expressions as input and applies the right table expression to each row from the left, allowing correlations from the right table ...

Sequences, Part 2

By Itzik Ben-Gan, 05/23/2011

SQL Server Denali’s sequences feature provides several advantages over the IDENTITY column property. Learn how to cache sequence values, obtain a range of sequence values, and ...

T-SQL Foundations: Thinking in Sets

By Itzik Ben-Gan, 04/20/2011

Itzik discusses the foundations of set theory and explains why it’s important to think in terms of sets when addressing querying tasks rather than thinking in iterative or cursor ...

Sequences, Part 1

By Itzik Ben-Gan, 04/17/2011

SQL Server Denali provides support for sequences, which are more flexible than the IDENTITY column property and offer several advantages over IDENTITY.

Parallelism in SQL Server Query Tuning

By Itzik Ben-Gan, 03/14/2011

SQL Server's choices of whether or not to use parallelism, the degree of parallelism (DOP), and CPU costing aspects of iterators depend on the number of CPUs available in the ...

OFFSET/FETCH, Part 2

By Itzik Ben-Gan, 03/11/2011

Itzik continues his discussion of the new SQL Server filter called OFFSET/FETCH. He explains the use of the filter in table expressions, logical query processing, modifications, ...

OFFSET/FETCH, Part 1

By Itzik Ben-Gan, 02/14/2011

SQL Server 11 introduces a new filter called OFFSET/FETCH that allows filtering a requested range of rows based on given ordering, a number of rows to skip, and a number of rows ...

Unpivoting Data

By Itzik Ben-Gan, 01/25/2011

Unpivoting involves rotating data from a state of columns to a state of rows. Itzik presents three techniques to unpivot data, based on the UNPIVOT operator, a cross join, and the ...

Row Value Constructor

By Itzik Ben-Gan, 11/17/2010

Future versions of SQL Server would benefit from support for the row value constructor feature, which makes code less verbose, more readable, and easier to maintain.