Posts

Black Friday sale

2 Comments
“If Brent does it, it has to be smart, right? Right?” As a European, I have always struggled with the concept of Black Friday sale. For many reasons. It’s called Black Friday. Why does the sale for many retailers actually last a full week, or even a month? The discounts offered during the Black Friday sale are, often, huge. Why would anyone still buy any non-perishables at any other time of the year? But as a European, I also see the popularity of Black Friday sales increasing, in my own country and many other countries throughout the world. As well…

Recorded conference sessions

1 Comment
Since the start of the Covid-19 pandemic, conferences have switched to a virtual format. During the pandemic that had only benefits, since the alternative would be no conference at all. Now that some areas of the world are slowly opening up again and the first few organizers tentatively prepare for live conferences, it will be interesting to see whether we’ll return to in-person delivery only, or whether we’ll see a mixture of in-person events, virtual events, and hybrid events going forward. Session recordings An interesting side effect of the rise of virtual events is that far more sessions than before…

Plansplaining, part 19. Temporal tables (part 4)

Welcome to part nineteen of the plansplaining series, where I will finally wrap up the discussion on temporal tables. In the first three parts, we looked at execution plans for modifying data in a temporal table, and for basic and advanced temporal queries. In this last part, we’ll shift away for execution plans (so the plansplaining tag is perhaps a bit misleading) and look at what happens if you join data from multiple temporal tables. Sample data I once more use the same tables as in all previous post, but this time I want a bit more control over the…

T-SQL Tuesday #139 – Execution plans in a hybrid world

Another month has passed. Another T-SQL Tuesday arrives, with a new host and a new subject. The host is no less than the amazingly awesome (his words, not mine!) Ben Weissman (b|t); his selected topic, based on the realization that the data world is hybrid and will remain so, is to share our experiences with our journey towards or on that hybrid world of on-prem, cloud, and edge. I don’t care … I’ll admit, my first response was to just sit this one out. I am extremely specialized in execution plans, as a tool for query performance tuning. When your…

Free video on percentages in execution plans

A few weeks ago I made a rather embarrassing discovery. I realised I had forgotten to include one of the most basic teachings about execution plans in my video training course. The subject is too important to leave out. It is too broad to add to an existing video. So I decided to add a seventh chapter to the (free!!) basic level of block 1. When I write, present, talk, or record about execution plans, I focus on how operators interact with each other and how that results in the desired results. Understanding performance issues comes automatically once you know…

Plansplaining, part 18. Temporal tables (part 3)

Welcome to part eighteen of the plansplaining series. Like the previous posts, this one too focuses on temporal tables and their effect on the execution plan. After looking at data modifications in temporal tables and at querying with a most basic temporal form of temporal query, let’s look at the more advanced variations for temporal querying. We’re still looking at getting data from a single query only in this post. We’ll look at joins in the next post. Sample tables For the code samples in this post, I keep building on the demo tables and sample data from the previous…

Recorded session: Debugging without debugger

Yesterday I presented a session for the virtual conference SQLDay, organized by our friends from the Polish SQL Server User Group (PLSSUG). An amazing conference that has chosen to use an interesting platform to try to recreate the in-person conference feeling while still being Covid-safe from behind your screen. However, an experimental new platform does come with challenges. During my presentation, my shared screen froze. After spending a few minutes trying to fix the issue I finally had to leave the application completely, then restart it. After that, the rest of the session delivery went fine. But the interruptions and…

T-SQL Tuesday #138 – Keeping up with change

It’s May 2021, it’s Tuesday; that means it’s time for T-SQL Tuesday, the monthly blog party for all SQL Server and Data Platform bloggers. This month is hosted by Andy Leonard (b|t). Andy invites us to share our thoughts on how we deal with technology changing as we are working on our projects. As an example, he mentions how, just after the release of his book on building custom SSIS tasks, he ran into things that had changed and had to publish an errata list. My experience Andy’s example hit home for me, because I regularly run into similar situations.…

How a row goal affects estimates

Most of our queries are intended to process a complete data set. But not all. There are cases where we restrict the number of rows. Or cases where SQL Server does this. In all such cases, and a few others, the query optimizer uses a mechanism called a “row goal” to ensure that the execution plan is optimized for a subset of the total result set, not all of it. Some examples Without trying to be complete, let’s list a few cases where a row goal would be set. Literal row limitation in the query The most simple is when…

Execution plans – learning opportunities

Most people know they have to invest in themselves, so that they can get better at their job. And if that job involves query performance on SQL Server, then part of that investment should definitely go towards execution plans. I happen to teach about execution plans. A lot. And there are a few opportunities in the near future that I want to make sure you are aware of. (If you are allergic to self-promotion, you might want to skip this post!) The basics Perhaps you are here because you have heard that execution plans are an important tool for query…
Menu

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close