Posts in Database Administration

Pay the Piper – Software Licensing and Audits

Once upon a Wikipedia safari, I found myself sucked into the article on the Pied Piper of Hamelin. I read that contrary to popular belief, the expression “pay the piper” actually comes not from the Pied Piper, but from the phrase “He who pays the piper calls the tune.” You learn something new every day, I thought to myself. You see, over the years, I have advised employers, clients, and contemporaries that when it comes to software licensing, it is best to “pay the piper.” It was an expression I learned as a kid in the Boston area. Keep reading…

How to get Linux hosts with DHCP IP addresses to show up in Microsoft DNS automatically

This blog post outlines a little trick we use to get Linux-based hosts on a network to show up in Microsoft-based DNS… automagically. This self-registration with DNS usually “just works” in a homogeneous Windows network (famous last words!)– so many folks take it for granted until they need something from the Linux ecosystem. Without setting this up, your options are either A) refer to said machines by IP address only, or B) manually add their hostnames and IPs into DNS, and manually keep those records updated. Keep reading…

What the Heck is Constant Folding?

Constant Folding is the term used when SQL Server query optimizer evaluates an expression or expressions BEFORE the query is compiled. For example, the following query would undergo constant folding by the optimizer before compilation:

SELECT COUNT(1) FROM dbo.SampleTable WHERE IDColumn = 5 + 7

The expression “5 + 7” is evaluated to “12” before the query is compiled. Constant folding happens for a limited number of expressions. Generally speaking, constant folding occurs for the following types of expressions:

1. Arithmetic expressions containing only constants (and no variables or parameters)

2. Logical expressions containing only constants, such as 1=1 and 1>0

3. Built-in deterministic functions whose inputs rely solely on provided values, without depending on any external context, such as database settings, encryption keys, environment variables, etc.

When possible, construct your T-SQL code in such a way that the optimizer can make use of constant folding. This will alleviate the need for the optimizer to repeatedly evaluate the expression at run time. It will also allow the cardinality estimator to more accurately predict the size of the result set.

For further reading, I highly suggest reading the TechNet article on Constant Folding. You can find some related information in the Forced Parameterization TechNet article here.

Happy coding!

We're Here To Help.

Database problem? Tell us a little bit about it.

Name*

Email*

Subject

Message*

captcha

* Required