A client called us with the following issue:
He had a table of a few dozen million rows. The table had a few GUID columns that had to be indexed.
He had an ETL process that inserted a few thousand rows every few minutes. When the table had only a… Read more
Yesterday I participated in PASS Performance Palooza.
I had a lot of fun delivering my session Columnstore Indexes – Questions and Answers.
The recording is already up:
The scripts and slide deck can be downloaded from here.
The PASS Performance Virtual Chapter has a tradition of yearly “Palooza events”, in which there are a few back-to-back online performance sessions by great speakers from all around the world.
I have the honor to speak in this year’s Performance Palooza, which will take place this Thursday, July 23.
I… Read more
Thanks to everyone who attended my 24 Hours of PASS session, The Data Loading Performance Presentation.
It was a lot of fun taking part in such a special event.
The slide deck and scripts I used in the session can be downloaded here.
24 Hours of PASS is just around the corner, and I’m happy to say that this time I’ll be speaking there.
Everyone’s talking about “Big Data”, huge tables and data explosion right?
Can we have a problem of a table that is too small?
Imagine you have a very small table (up to a few thousand rows) that fits into a single SQL Server page, being constantly read and updated, and… Read more
Let’s look at the following script:
CREATE TABLE LoadMeFast (Id INT NOT NULL, InsertDate DATETIME NOT NULL, ABunchOfLetters NVARCHAR(100) ) GO SET NOCOUNT ON GO DECLARE @i INT = 1 WHILE @i <= 100000 BEGIN INSERT LoadMeFast SELECT @i, GETDATE(), REPLICATE(N'ABCD', 25) SET @i+=1 END GO
The script runs for… Read more
This past Wednesday, I delivered my session, “Query Progress Tracking in SQL Server” to the DBA Virtual Chapter.
The session covers many techniques for tracking the progress of queries and processes. I also talked about very nice features that were added in SQL Server 2014 and SQL Server 2016.
The… Read more
Let’s say you remember a piece of code you need to optimize or take a look at, but you don’t remember in which stored procedure you saw it.
The following script searches for a certain string inside the code of all programmatic objects in the database (stored procedures, triggers, views… Read more
You setup SQL Server Replication and everything looks fine. Rows are flowing between the servers and you think you’re done.
At some point in time, your replication jobs will stop (some replication failure, stop for maintenance, etc..). Once that happens, will they start working again?
When you… Read more
In order to get information about the amounts of PHYSICAL reads we perform on database files, SQL Server exposes a DMV called sys.dm_io_virtual_file_stats.
In addition to information about number of reads and writes, and the amounts of bytes read and written, we also have the io_stall_read_ms, io_stall_write_ms and io_stall, which… Read more
When you configure log shipping, there are 4 SQL Server Agent jobs that are set up:
Backup: Performs a backup log operation on the primary server, logs history and deletes old backup files and history information
Copy: Copies the backup files to the secondary server and logs history
Restore: Restores… Read more
It’s been a great a busy week.
On Wednesday, I presented my session, “Query Progress Tracking in SQL Server” at SQLRally in Copenhagen.
On Thursday, I presented my session, “The Data Loading Performance Presentation”, at SQLBits in London.
Thanks to everyone who attended my sessions. I had a lot of… Read more
Traditionally, we want our Clustered Index to have the following attributes:
- Narrow: So that our clustered index and the non-clustered indexes that point to it will be as slim as possible
- Static: So that we don’t generate fragmentation in the clustered index and we don’t have to update the non-clustered…
Next week, I’m going to visit London and Copenhagen for SQLBits and SQLRally Nordic. It’s going to be intense and fun.
On Wednesday, March 4, at 4:45PM, I’ll deliver my session “Query Progress Tracking in SQL Server” at SQLRally in Copenhagen.
The session talks about a big… Read more
This Monday, at SQLSaturday Israel, I presented my new session, “The Data Loading Performance Presentation”.
I worked on the session a lot, and delivering it was tons of fun.
The session talks about the ways to load big amounts of data fast, and about the enemies that can make… Read more
We had a great conversation and covered a lot of issues. Among… Read more
2015 is here!
Last year I wrote about what I had learned in 2013, and I try to make it a tradition. So without further ado, here’s what I learned in 2014:
- Columnstore Indexes are amazing. The Columnstore technology is fascinating to me, and I keep learning…
Clustered Columnstore Indexes, as well as “regular” indexes, support the Rebuild and Reorganize operations. However, the meaning of those operations is different in the case of Columnstore.
Before we describe the differences, let’s remind ourselves how data manipulation works in Columnstore:
Inserts go into an object called Delta Store,… Read more
Let’s say you build or rebuild an index in SQL Server. Your users and boss are anxious to know when the table will stop being blocked and when their precious queries will run fast. What can you tell them?
SQL Server allows tracking the progress of index build and rebuilds.… Read more