Skip to content

Instantly share code, notes, and snippets.

View BrentOzar's full-sized avatar
❤️

Brent Ozar BrentOzar

❤️
View GitHub Profile
<HealthEvent>
<HealthInformation>
<SourceId>System.FM</SourceId>
<Property>State</Property>
<TimeToLiveSeconds>0</TimeToLiveSeconds>
<State>OK</State>
<Description>Fabric node is up.</Description>
<SequenceNumber>14</SequenceNumber>
<RemoveWhenExpired>false</RemoveWhenExpired>
</HealthInformation>
CREATE DATABASE [٠০౦০٠];
GO
USE [٠০౦০٠];
GO
CREATE SCHEMA [٠০౦০٠];
GO
CREATE TABLE [٠০౦০٠].[٠০౦০٠]([٠০౦০٠] NVARCHAR(20), [۰০౦০٠] NVARCHAR(20), [٠০౦০۰] NVARCHAR(20), [۰০౦০۰] NVARCHAR(20));
GO
CREATE UNIQUE CLUSTERED INDEX [٠০౦০٠] ON [٠০౦০٠].[٠০౦০٠]([٠০౦০٠], [۰০౦০٠], [٠০౦০۰], [۰০౦০۰]);
GO
@BrentOzar
BrentOzar / PlanCacheByDateAndHour.sql
Created July 3, 2018 11:28
Report on SQL Server's plan cache history over time.
/*
SQL Server Plan Cache History by Date & Time
Brent Ozar, 2018/07/03 - https://BrentOzar.com/go/plansbydate
This is free and unencumbered software released into the public domain.
Anyone is free to copy, modify, publish, use, compile, sell, or
distribute this software, either in source code form or as a compiled
binary, for any purpose, commercial or non-commercial, and by any
means.
@BrentOzar
BrentOzar / Posts_MultiTenant.sql
Created October 24, 2018 11:40
Creating a multi-tenant version of StackOverflow.dbo.Posts
CREATE TABLE [dbo].[Posts_MultiTenant](
[Id] [int] IDENTITY(1,1) NOT NULL,
[CompanyCode] VARCHAR(10) NOT NULL,
[AcceptedAnswerId] [int] NULL,
[AnswerCount] [int] NULL,
[Body] [nvarchar](max) NOT NULL,
[ClosedDate] [datetime] NULL,
[CommentCount] [int] NULL,
[CommunityOwnedDate] [datetime] NULL,
[CreationDate] [datetime] NOT NULL,
/*
Getting Better Query Plans by Improving SQL's Estimates
v1.1 - 2018-11-05
This demo requires:
* Any supported version of SQL Server (2008 or newer.) There are a few times
in here where I'll show SQL Server 2017/2019 stuff, but I'll call that out.
* Stack Overflow database: https://www.BrentOzar.com/go/querystack
The small 2010 version will work fine. Of course, the exact row counts and
{
"createIndexDetails":{
"indexName":"nci_wi_Badges_6E3E4E1FB3A8DD0F4201053BD6EA0D5F",
"indexType":"NONCLUSTERED",
"schema":"[dbo]",
"table":"[Badges]",
"indexColumns":"[Name], [Date]",
"includedColumns":"[UserId]",
"indexActionStartTime":"2019-02-14T13:12:15",
"indexActionDuration":"00:02:56.9860000"
CREATE TABLE dbo.UsersDemo (Id INT PRIMARY KEY CLUSTERED, Reputation DECIMAL(16,0));
GO
INSERT INTO dbo.UsersDemo (Id, Reputation)
SELECT Id, Reputation
FROM dbo.Users WITH (NOLOCK);
GO
/* Turn on actual plans and run both of these: */
SET STATISTICS IO ON;
@BrentOzar
BrentOzar / Create ~1000 partitioned indexes on the Stack Overflow Users table
Created April 23, 2019 16:22
Creates a database with an empty Users table, with about 1,000 indexes, each on a partition scheme with about 1,000 partitions
CREATE DATABASE MuchoPartitions;
GO
USE MuchoPartitions;
GO
CREATE TABLE [dbo].[Users](
[Id] [int] IDENTITY(1,1) NOT NULL,
[AboutMe] [nvarchar](max) NULL,
[Age] [int] NULL,
[CreationDate] [datetime] NOT NULL,
SELECT msm.*, hbp.*, pmem_in_use_kb = pm.physical_memory_in_use_kb, large_pages_kb = pm.large_page_allocations_kb,
locked_pages_kb = pm.locked_page_allocations_kb, commit_limit_kb = available_commit_limit_kb,
tot_mem_kb = sm.total_physical_memory_kb, [version] = @@VERSION,
sm.available_physical_memory_kb
FROM sys.dm_os_process_memory pm
CROSS JOIN sys.dm_os_sys_memory sm
CROSS JOIN (SELECT max_server_mem = value_in_use FROM sys.configurations
WHERE NAME = 'max server memory (MB)') msm
CROSS JOIN (SELECT hybrid_buffer_pool = value_in_use FROM sys.configurations
WHERE NAME = 'hybrid_buffer_pool') hbp
@BrentOzar
BrentOzar / sp_Blitz_as_script.sql
Created December 2, 2019 16:10
Long query without the create proc
DECLARE
@Help TINYINT = 0 ,
@CheckUserDatabaseObjects TINYINT = 1 ,
@CheckProcedureCache TINYINT = 0 ,
@OutputType VARCHAR(20) = 'TABLE' ,
@OutputProcedureCache TINYINT = 0 ,
@CheckProcedureCacheFilter VARCHAR(10) = NULL ,
@CheckServerInfo TINYINT = 0 ,
@SkipChecksServer NVARCHAR(256) = NULL ,
@SkipChecksDatabase NVARCHAR(256) = NULL ,