AlwaysOn Availability Groups is a great technology that centralizes the management of High Availability, Disaster Recovery and Scale-Out. However, in many cases, the good old Database Mirroring is just good enough (and in some cases, better):
Database Mirroring can work in Standard Edition
Database Mirroring is supported in both… Read more
This weekend, I’ll hop on a plane and fly over to Norway for SQLSaturday Oslo.
I’ll be delivering a session I like a lot: The Data Loading Performance Presentation.
Among other topics, we will talk about the #1 enemy of high performance data loading, Minimal Logging and Bulk… Read more
Last week, I gave a presentation about SQL Server’s data warehouse capabilities, and specifically about APS (Analytics Platform System) and Azure SQL Data Warehouse.
The best way to learn about a subject is to teach it, and indeed, I learned a lot. Let’s talk about it a bit.
APS… Read more
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