db:sqlserver:jimetrics
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| db:sqlserver:jimetrics [2013/11/05 03:10] – Change SysMetrics to JiMetrics haidong | db:sqlserver:jimetrics [2018/05/15 03:00] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ==== JiMetrics database creation ==== | ==== JiMetrics database creation ==== | ||
| - | Since I started with Windows, I will present a SQL Server database | + | Since I started with Windows, I will present a SQL Server database |
| + | |||
| + | I doubt that we will need to purge historical metrics data if we use columnstore. Or at a minimum, we would be able to keep that history much longer. | ||
| Here is the ER diagram of the JiMetrics database. For now there are only 7 tables involved under the Windows schema, so it is pretty easy to understand and query. | Here is the ER diagram of the JiMetrics database. For now there are only 7 tables involved under the Windows schema, so it is pretty easy to understand and query. | ||
| - | {{ db:sqlserversysmetrics.png }} | + | {{ db:sqlserverjimetrics.png }} |
| Note that syntax highlighting is not completely correct, but the script is just fine. | Note that syntax highlighting is not completely correct, but the script is just fine. | ||
| <code tsql JiMetrics.sql> | <code tsql JiMetrics.sql> | ||
| - | CREATE DATABASE JiMetrics | + | CREATE DATABASE JiMetrics; |
| GO | GO | ||
| ALTER DATABASE JiMetrics SET RECOVERY SIMPLE; | ALTER DATABASE JiMetrics SET RECOVERY SIMPLE; | ||
| GO | GO | ||
| - | USE [JiMetrics] | + | USE [JiMetrics]; |
| GO | GO | ||
| - | IF EXISTS (SELECT * FROM sys.schemas WHERE name = N' | + | IF EXISTS (SELECT * FROM sys.schemas WHERE name = N' |
| - | DROP SCHEMA [Windows] | + | DROP SCHEMA [Windows]; |
| GO | GO | ||
| - | CREATE SCHEMA [Windows] AUTHORIZATION [dbo] | + | CREATE SCHEMA [Windows] AUTHORIZATION [dbo]; |
| GO | GO | ||
| - | SET ANSI_NULLS ON | + | SET ANSI_NULLS ON; |
| GO | GO | ||
| - | SET QUOTED_IDENTIFIER ON | + | SET QUOTED_IDENTIFIER ON; |
| GO | GO | ||
| CREATE TABLE [Windows].[Host]( | CREATE TABLE [Windows].[Host]( | ||
| - | | + | [HostID] [int] IDENTITY(1, |
| - | [HostName] [nvarchar](20) NOT NULL, | + | [HostName] [nvarchar](20) NOT NULL, |
| - | [Domain] [nvarchar](50) NULL, | + | [Domain] [nvarchar](50) NULL, |
| - | [OS] [nvarchar](50) NULL, | + | [OS] [nvarchar](50) NULL, |
| - | [OSArchitecture] [nchar](6) NULL, | + | [OSArchitecture] [nchar](6) NULL, |
| - | [OSServicePack] [nvarchar](20) NULL, | + | [OSServicePack] [nvarchar](20) NULL, |
| - | [OSVersionNumber] [nvarchar](20) NULL, | + | [OSVersionNumber] [nvarchar](20) NULL, |
| - | [HardwareModel] [nvarchar](50) NULL, | + | [HardwareModel] [nvarchar](50) NULL, |
| - | [HardwareVendor] [nvarchar](50) NULL, | + | [HardwareVendor] [nvarchar](50) NULL, |
| - | [MemorySizeGB] [int] NULL, | + | [MemorySizeGB] [int] NULL, |
| - | [CPUType] [nvarchar] (50) NULL, | + | [CPUType] [nvarchar] (50) NULL, |
| - | [CoreCount] [int] NULL, | + | [CoreCount] [int] NULL, |
| - | [IsActive] [nchar](1) NOT NULL, | + | [SMBIOSVersion] [nvarchar](50) NULL, |
| - | [LastUpdate] [datetime2] NULL | + | [BIOSReleaseDate] [DATE] NULL, |
| - | | + | [SerialNumber] [nvarchar](50) NULL, |
| - | ( | + | [IsVM] AS (CASE HardwareVendor |
| - | | + | WHEN ' |
| - | )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON), | + | WHEN ' |
| - | | + | WHEN ' |
| - | ( | + | ELSE ' |
| - | | + | END) PERSISTED, |
| - | )WITH (PAD_INDEX | + | [IsActive] [nchar](1) NOT NULL, |
| - | ) | + | [LastUpdate] [datetime2] NULL |
| + | | ||
| + | | ||
| + | WITH (DATA_COMPRESSION | ||
| GO | GO | ||
| - | ALTER TABLE [Windows].[Host] WITH CHECK ADD CONSTRAINT [CK_Host_IsActive] CHECK (([IsActive]=' | + | ALTER TABLE [Windows].[Host] |
| + | [CK_Host_IsActive] CHECK (([IsActive]=' | ||
| + | | ||
| GO | GO | ||
| - | ALTER TABLE [Windows].[Host] CHECK CONSTRAINT [CK_Host_IsActive] | + | ALTER TABLE [Windows].[Host] CHECK CONSTRAINT [CK_Host_IsActive]; |
| GO | GO | ||
| - | ALTER TABLE [Windows].[Host] ADD CONSTRAINT [DF_Host_IsActive] DEFAULT (' | + | ALTER TABLE [Windows].[Host] ADD CONSTRAINT [DF_Host_IsActive] |
| + | | ||
| GO | GO | ||
| - | ALTER TABLE [Windows].[Host] ADD CONSTRAINT [DF_Host_LastUpdate] DEFAULT (getdate()) FOR [LastUpdate] | + | ALTER TABLE [Windows].[Host] ADD CONSTRAINT [DF_Host_LastUpdate] |
| + | | ||
| GO | GO | ||
| - | CREATE PROCEDURE Windows.Host_Select_HostID_HostName | + | CREATE PROCEDURE Windows.Host_Select_HostID_HostName |
| - | @IsActive nchar(1) = ' | + | @IsActive nchar(1) = ' |
| AS | AS | ||
| BEGIN | BEGIN | ||
| - | | + | SET NOCOUNT ON; |
| - | | + | SELECT HostID, HostName FROM Windows.Host |
| - | WHERE IsActive = @IsActive; | + | WHERE IsActive = @IsActive; |
| END | END | ||
| GO | GO | ||
| - | CREATE PROCEDURE Windows.Host_Update | + | CREATE PROCEDURE Windows.Host_Update |
| - | | + | |
| - | , @Domain nvarchar(50) = NULL | + | , @Domain nvarchar(50) = NULL |
| - | , @OS nvarchar(50) = NULL | + | , @OS nvarchar(50) = NULL |
| - | , @OSArchitecture nchar(6) = NULL | + | , @OSArchitecture nchar(6) = NULL |
| - | , @OSServicePack nvarchar(20) = NULL | + | , @OSServicePack nvarchar(20) = NULL |
| - | , @OSVersionNumber nvarchar(20) = NULL | + | , @OSVersionNumber nvarchar(20) = NULL |
| - | , @HardwareModel nvarchar(50) = NULL | + | , @HardwareModel nvarchar(50) = NULL |
| - | , @HardwareVendor nvarchar(50) = NULL | + | , @HardwareVendor nvarchar(50) = NULL |
| - | , @MemorySizeGB int = NULL | + | , @MemorySizeGB int = NULL |
| - | , @CPUType nvarchar(50) = NULL | + | , @CPUType nvarchar(50) = NULL |
| - | , @CoreCount int = NULL | + | , @CoreCount int = NULL |
| - | , @IsActive nchar(1) = ' | + | , @SMBIOSVersion nvarchar(50) = NULL |
| + | , @BIOSReleaseDate DATE = NULL | ||
| + | , @SerialNumber nvarchar(50) = NULL | ||
| + | , @IsActive nchar(1) = ' | ||
| AS | AS | ||
| BEGIN | BEGIN | ||
| - | | + | SET NOCOUNT ON; |
| - | | + | UPDATE Windows.Host SET |
| - | | + | |
| - | , OS = @OS | + | , OS = @OS |
| - | , OSArchitecture = @OSArchitecture | + | , OSArchitecture = @OSArchitecture |
| - | , OSServicePack = @OSServicePack | + | , OSServicePack = @OSServicePack |
| - | , OSVersionNumber = @OSVersionNumber | + | , OSVersionNumber = @OSVersionNumber |
| - | , HardwareModel = @HardwareModel | + | , HardwareModel = @HardwareModel |
| - | , HardwareVendor = @HardwareVendor | + | , HardwareVendor = @HardwareVendor |
| - | , MemorySizeGB = @MemorySizeGB | + | , MemorySizeGB = @MemorySizeGB |
| - | , CPUType = @CPUType | + | , CPUType = @CPUType |
| - | , CoreCount = @CoreCount | + | , CoreCount = @CoreCount |
| - | , IsActive = @IsActive | + | , SMBIOSVersion = @SMBIOSVersion |
| - | WHERE HostID = @HostID; | + | , BIOSReleaseDate = @BIOSReleaseDate |
| + | , SerialNumber = @SerialNumber | ||
| + | , IsActive = @IsActive | ||
| + | WHERE HostID = @HostID; | ||
| END | END | ||
| GO | GO | ||
| - | INSERT INTO Windows.Host (HostName) VALUES (' | + | --INSERT INTO Windows.Host (HostName) VALUES (' |
| - | INSERT INTO Windows.Host (HostName) VALUES (' | + | --INSERT INTO Windows.Host (HostName) VALUES (' |
| CREATE TABLE [Windows].[Instance]( | CREATE TABLE [Windows].[Instance]( | ||
| - | | + | [InstanceID] [int] IDENTITY(1, |
| - | [HostID] [int] NOT NULL, | + | [HostID] [int] NOT NULL, |
| - | [InstanceName] [nvarchar](30) NULL, | + | [InstanceName] [nvarchar](30) |
| - | [InstanceEdition] [nvarchar](50) NULL, | + | [StartupAcct] [nvarchar](30) NOT NULL, |
| - | [InstanceEditionID] [bigint] NULL, | + | [InstanceEdition] [nvarchar](50) NULL, |
| - | [InstanceVersion] [nchar](20) NULL, | + | [InstanceEditionID] [bigint] NULL, |
| - | [InstanceServicePack] [nvarchar](20) NULL, | + | [InstanceVersion] [nchar](20) NULL, |
| - | [IsActive] [nchar](1) NOT NULL, | + | [InstanceServicePack] [nvarchar](20) NULL, |
| - | [LastUpdate] [datetime2] NULL | + | [IsActive] [nchar](1) NOT NULL, |
| - | | + | [LastUpdate] [datetime2] NULL |
| - | ( | + | |
| - | | + | |
| - | )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON), | + | WITH (DATA_COMPRESSION |
| - | | + | |
| - | ( | + | |
| - | | + | |
| - | )WITH (PAD_INDEX | + | |
| - | ) | + | |
| GO | GO | ||
| - | ALTER TABLE [Windows].[Instance] WITH CHECK ADD CONSTRAINT [CK_Instance_IsActive] CHECK (([IsActive]=' | + | ALTER TABLE [Windows].[Instance] |
| + | [CK_Instance_IsActive] CHECK (([IsActive]=' | ||
| + | | ||
| GO | GO | ||
| - | ALTER TABLE [Windows].[Instance] CHECK CONSTRAINT [CK_Instance_IsActive] | + | ALTER TABLE [Windows].[Instance] CHECK CONSTRAINT |
| + | [CK_Instance_IsActive]; | ||
| GO | GO | ||
| - | ALTER TABLE [Windows].[Instance] ADD CONSTRAINT [DF_Instance_IsActive] DEFAULT (' | + | ALTER TABLE [Windows].[Instance] ADD CONSTRAINT [DF_Instance_IsActive] |
| + | | ||
| GO | GO | ||
| - | ALTER TABLE [Windows].[Instance] ADD CONSTRAINT [DF_Instance_LastUpdate] DEFAULT (getdate()) FOR [LastUpdate] | + | ALTER TABLE [Windows].[Instance] ADD CONSTRAINT |
| + | | ||
| GO | GO | ||
| - | ALTER TABLE [Windows].[Instance] ADD CONSTRAINT [FK_Instance_HostID] FOREIGN KEY (HostID) REFERENCES [Windows].[Host] (HostID); | + | ALTER TABLE [Windows].[Instance] ADD CONSTRAINT [FK_Instance_HostID] |
| + | | ||
| GO | GO | ||
| - | CREATE PROCEDURE Windows.Instance_Select_InstanceID_InstanceName | + | CREATE PROCEDURE Windows.Instance_Select_InstanceID_InstanceName |
| - | @IsActive nchar(1) = ' | + | @IsActive nchar(1) = ' |
| AS | AS | ||
| BEGIN | BEGIN | ||
| - | | + | SET NOCOUNT ON; |
| - | | + | SELECT InstanceID, InstanceName FROM Windows.Instance |
| - | WHERE IsActive = @IsActive; | + | WHERE IsActive = @IsActive; |
| END | END | ||
| GO | GO | ||
| - | CREATE PROCEDURE Windows.Instance_Insert | + | CREATE PROCEDURE Windows.Instance_Insert |
| - | | + | @HostID int |
| - | , @InstanceName nvarchar(30) | + | , @InstanceName nvarchar(30) |
| - | , @IsActive nvarchar(1) | + | , @StartupAcct nvarchar(30) |
| + | , @IsActive nvarchar(1) | ||
| AS | AS | ||
| BEGIN | BEGIN | ||
| - | | + | SET NOCOUNT ON; |
| - | | + | IF NOT EXISTS (SELECT * FROM Windows.Instance |
| - | INSERT INTO [Windows].[Instance] (HostID, InstanceName, | + | WHERE InstanceName = @InstanceName) |
| + | INSERT INTO [Windows].[Instance] (HostID, InstanceName, | ||
| + | | ||
| END | END | ||
| GO | GO | ||
| - | CREATE PROCEDURE Windows.Instance_Update | + | CREATE PROCEDURE Windows.Instance_Update |
| - | | + | |
| - | , @InstanceEdition nvarchar(50) = NULL | + | , @InstanceEdition nvarchar(50) = NULL |
| - | , @InstanceEditionID bigint = NULL | + | , @InstanceEditionID bigint = NULL |
| - | , @InstanceVersion nvarchar(20) = NULL | + | , @InstanceVersion nvarchar(20) = NULL |
| - | , @InstanceServicePack nvarchar(20) = NULL | + | , @InstanceServicePack nvarchar(20) = NULL |
| - | , @IsActive nchar(1) = ' | + | , @StartupAcct nvarchar(30) = NULL |
| + | , @IsActive nchar(1) = ' | ||
| AS | AS | ||
| BEGIN | BEGIN | ||
| - | | + | SET NOCOUNT ON; |
| - | | + | UPDATE Windows.Instance SET |
| - | | + | |
| - | , InstanceEditionID = @InstanceEditionID | + | , InstanceEditionID = @InstanceEditionID |
| - | , InstanceVersion = @InstanceVersion | + | , InstanceVersion = @InstanceVersion |
| - | , InstanceServicePack = @InstanceServicePack | + | , InstanceServicePack = @InstanceServicePack |
| - | , IsActive = @IsActive | + | , StartupAcct = @StartupAcct |
| - | WHERE InstanceID = @InstanceID; | + | , IsActive = @IsActive |
| + | WHERE InstanceID = @InstanceID; | ||
| END | END | ||
| GO | GO | ||
| CREATE TABLE [Windows].[Storage]( | CREATE TABLE [Windows].[Storage]( | ||
| - | [RecordID] [int] IDENTITY(1, | + | |
| - | , [HostID] [int] NOT NULL | + | , [HostID] [int] NOT NULL |
| - | , [DiskPath] [nvarchar](300) NOT NULL | + | , [DiskPath] [nvarchar](300) NOT NULL |
| - | , [DiskFormat] [nvarchar](25) NOT NULL | + | , [DiskFormat] [nvarchar](25) NOT NULL |
| - | , [DiskLabel] [nvarchar](100) NULL | + | , [DiskLabel] [nvarchar](100) NULL |
| - | , [DiskSizeGB] [int] NOT NULL | + | , [DiskSizeGB] [int] NOT NULL |
| - | , [DiskFreeGB] [int] NOT NULL | + | , [DiskFreeGB] [int] NOT NULL |
| - | , [DiskUsedGB] AS ([DiskSizeGB]-[DiskFreeGB]) PERSISTED | + | , [DiskUsedGB] AS ([DiskSizeGB]-[DiskFreeGB]) PERSISTED |
| - | , [CollectionDate] [datetime2] NOT NULL, | + | , [CollectionDate] [datetime2] NOT NULL, |
| - | CONSTRAINT [pk__Storage_RecordID] PRIMARY KEY CLUSTERED | + | CONSTRAINT [pk__Storage_RecordID] PRIMARY KEY CLUSTERED ([RecordID]) |
| - | ( | + | WITH (DATA_COMPRESSION |
| - | [RecordID] | + | |
| - | )WITH (PAD_INDEX | + | |
| - | ) | + | |
| GO | GO | ||
| - | ALTER TABLE [Windows].[Storage] ADD DEFAULT (getdate()) FOR [CollectionDate] | + | ALTER TABLE [Windows].[Storage] |
| + | | ||
| GO | GO | ||
| - | ALTER TABLE [Windows].[Storage] WITH CHECK ADD CONSTRAINT [fk__Storage_HostID] FOREIGN KEY([HostID]) | + | ALTER TABLE [Windows].[Storage] WITH CHECK ADD CONSTRAINT |
| - | REFERENCES [Windows].[Host] ([HostID]) | + | [fk__Storage_HostID] FOREIGN KEY([HostID]) |
| + | REFERENCES [Windows].[Host] ([HostID]); | ||
| GO | GO | ||
| - | ALTER TABLE [Windows].[Storage] CHECK CONSTRAINT [fk__Storage_HostID] | + | ALTER TABLE [Windows].[Storage] CHECK CONSTRAINT [fk__Storage_HostID]; |
| GO | GO | ||
| - | ALTER TABLE [Windows].[Storage] WITH CHECK ADD CONSTRAINT [ck__Storage_DiskSize] CHECK (([DiskUsedGB]> | + | ALTER TABLE [Windows].[Storage] WITH CHECK ADD CONSTRAINT |
| + | [ck__Storage_DiskSize] CHECK (([DiskUsedGB]> | ||
| + | AND [DiskSizeGB]> | ||
| GO | GO | ||
| - | ALTER TABLE [Windows].[Storage] CHECK CONSTRAINT [ck__Storage_DiskSize] | + | ALTER TABLE [Windows].[Storage] |
| + | | ||
| GO | GO | ||
| - | ALTER TABLE [Windows].[Storage] ADD CONSTRAINT [FK_Storage_HostID] FOREIGN KEY (HostID) REFERENCES [Windows].[Host] (HostID); | + | ALTER TABLE [Windows].[Storage] ADD CONSTRAINT [FK_Storage_HostID] |
| + | | ||
| GO | GO | ||
| CREATE procedure [Windows].[Storage_Insert] | CREATE procedure [Windows].[Storage_Insert] | ||
| - | @HostID [int] | + | |
| - | , @DiskPath [nvarchar](1000) | + | , @DiskPath [nvarchar](1000) |
| - | , @DiskFormat [nvarchar](50) | + | , @DiskFormat [nvarchar](50) |
| - | , @DiskLabel [nvarchar](100) | + | , @DiskLabel [nvarchar](100) |
| - | , @DiskSizeGB [int] | + | , @DiskSizeGB [int] |
| - | , @DiskFreeGB [int] | + | , @DiskFreeGB [int] |
| AS | AS | ||
| BEGIN | BEGIN | ||
| - | | + | SET NOCOUNT ON; |
| - | INSERT INTO Windows.Storage ( | + | INSERT INTO Windows.Storage ( |
| - | HostID | + | HostID |
| - | , DiskPath | + | , DiskPath |
| - | , DiskFormat | + | , DiskFormat |
| - | , DiskLabel | + | , DiskLabel |
| - | , DiskSizeGB | + | , DiskSizeGB |
| - | , DiskFreeGB) | + | , DiskFreeGB) |
| - | VALUES ( | + | VALUES ( |
| - | @HostID | + | @HostID |
| - | , @DiskPath | + | , @DiskPath |
| - | , @DiskFormat | + | , @DiskFormat |
| - | , @DiskLabel | + | , @DiskLabel |
| - | , @DiskSizeGB | + | , @DiskSizeGB |
| - | , @DiskFreeGB); | + | , @DiskFreeGB); |
| END | END | ||
| - | GO | ||
| - | |||
| - | SET ANSI_NULLS ON | ||
| - | GO | ||
| - | |||
| - | SET QUOTED_IDENTIFIER ON | ||
| GO | GO | ||
| CREATE TABLE [Windows].[DbFileStats]( | CREATE TABLE [Windows].[DbFileStats]( | ||
| - | | + | [DbFileStatsID] [int] IDENTITY(1, |
| - | [InstanceID] [int] NOT NULL, | + | [InstanceID] [int] NOT NULL, |
| - | [DbName] [sysname] NOT NULL, | + | [DbName] [sysname] NOT NULL, |
| - | [FileLogicalName] [sysname] NOT NULL, | + | [FileLogicalName] [sysname] NOT NULL, |
| - | [FilePhysicalName] [sysname] NOT NULL, | + | [FilePhysicalName] [sysname] NOT NULL, |
| - | [FileGroupName] [sysname] NOT NULL, | + | [FileGroupName] [sysname] NOT NULL, |
| - | [FileSizeInMB] [int] NOT NULL, | + | [FileSizeInMB] [int] NOT NULL, |
| - | [FreeSizeInMB] [int] NOT NULL, | + | [FreeSizeInMB] [int] NOT NULL, |
| - | [Max_Size] [int] NOT NULL, | + | [Max_Size] [int] NOT NULL, |
| - | [Growth] [int] NOT NULL, | + | [Growth] [int] NOT NULL, |
| - | [Is_Percent_Growth] nchar(1) NOT NULL, | + | [Is_Percent_Growth] nchar(1) NOT NULL, |
| - | [CollectionDate] [datetime2] NOT NULL, | + | [CollectionDate] [datetime2] NOT NULL, |
| CONSTRAINT [pk__DbFileStatsID_SID] PRIMARY KEY CLUSTERED | CONSTRAINT [pk__DbFileStatsID_SID] PRIMARY KEY CLUSTERED | ||
| - | ( | + | ([DbFileStatsID] ASC) |
| - | [DbFileStatsID] ASC | + | WITH (DATA_COMPRESSION |
| - | )WITH (PAD_INDEX | + | |
| - | ) | + | |
| GO | GO | ||
| - | ALTER TABLE [Windows].[DbFileStats] ADD DEFAULT (getdate()) FOR [CollectionDate] | + | ALTER TABLE [Windows].[DbFileStats] |
| + | | ||
| GO | GO | ||
| - | ALTER TABLE [Windows].[DbFileStats] WITH CHECK ADD CONSTRAINT [CK_DbFileStats_Is_Percent_Growth] CHECK (([Is_Percent_Growth]=' | + | ALTER TABLE [Windows].[DbFileStats] |
| + | | ||
| + | | ||
| + | | ||
| GO | GO | ||
| - | ALTER TABLE [Windows].[DbFileStats] ADD CONSTRAINT [DF_DbFileStats_Is_Percent_Growth] DEFAULT (' | + | ALTER TABLE [Windows].[DbFileStats] ADD CONSTRAINT |
| + | [DF_DbFileStats_Is_Percent_Growth] | ||
| + | [Is_Percent_Growth]; | ||
| GO | GO | ||
| - | ALTER TABLE [Windows].[DbFileStats] ADD CONSTRAINT [FK_DbFileStats_InstanceID] FOREIGN KEY (InstanceID) REFERENCES [Windows].[Instance] (InstanceID); | + | ALTER TABLE [Windows].[DbFileStats] ADD CONSTRAINT |
| + | | ||
| + | | ||
| GO | GO | ||
| CREATE PROCEDURE [Windows].[DbFileStats_Insert] | CREATE PROCEDURE [Windows].[DbFileStats_Insert] | ||
| - | | + | @InstanceID int |
| - | , @DbName sysname | + | , @DbName sysname |
| - | , @FileLogicalName sysname | + | , @FileLogicalName sysname |
| - | , @FilePhysicalName nvarchar(500) | + | , @FilePhysicalName nvarchar(500) |
| - | , @FileGroupName sysname | + | , @FileGroupName sysname |
| - | , @FileSizeInMB [int] | + | , @FileSizeInMB [int] |
| - | , @FreeSizeInMB [int] | + | , @FreeSizeInMB [int] |
| - | , @max_size [int] | + | , @max_size [int] |
| - | , @growth [int] | + | , @growth [int] |
| - | , @is_percent_growth nchar(1) | + | , @is_percent_growth nchar(1) |
| AS | AS | ||
| BEGIN | BEGIN | ||
| - | | + | SET NOCOUNT ON; |
| - | | + | INSERT INTO Windows.DbFileStats ( |
| - | InstanceID | + | InstanceID |
| - | , DbName | + | , DbName |
| - | , FileLogicalName | + | , FileLogicalName |
| - | , FilePhysicalName | + | , FilePhysicalName |
| - | , FileGroupName | + | , FileGroupName |
| - | , FileSizeInMB | + | , FileSizeInMB |
| - | , FreeSizeInMB | + | , FreeSizeInMB |
| - | , max_size | + | , max_size |
| - | , growth | + | , growth |
| - | , is_percent_growth) | + | , is_percent_growth) |
| - | VALUES ( | + | VALUES ( |
| - | @InstanceID | + | @InstanceID |
| - | , @DbName | + | , @DbName |
| - | , @FileLogicalName | + | , @FileLogicalName |
| - | , @FilePhysicalName | + | , @FilePhysicalName |
| - | , @FileGroupName | + | , @FileGroupName |
| - | , @FileSizeInMB | + | , @FileSizeInMB |
| - | , @FreeSizeInMB | + | , @FreeSizeInMB |
| - | , @max_size | + | , @max_size |
| - | , @growth | + | , @growth |
| - | , @is_percent_growth); | + | , @is_percent_growth); |
| END | END | ||
| Line 342: | Line 366: | ||
| CREATE TABLE [Windows].[TableStats]( | CREATE TABLE [Windows].[TableStats]( | ||
| - | | + | [TableStatsID] [int] IDENTITY(1, |
| - | [InstanceID] [int] NOT NULL, | + | [InstanceID] [int] NOT NULL, |
| - | [DbName] [sysname] NOT NULL, | + | [DbName] [sysname] NOT NULL, |
| - | [SchemaName] [sysname] NOT NULL, | + | [SchemaName] [sysname] NOT NULL, |
| - | [TableName] [sysname] NOT NULL, | + | [TableName] [sysname] NOT NULL, |
| - | [TotalRowCount] [bigint] NOT NULL, | + | [TotalRowCount] [bigint] NOT NULL, |
| - | [DataSizeInMB] [int] NOT NULL, | + | [DataSizeInMB] [int] NOT NULL, |
| - | [IndexSizeInMB] [int] NOT NULL, | + | [IndexSizeInMB] [int] NOT NULL, |
| - | [CollectionDate] [datetime2] NOT NULL, | + | [CollectionDate] [datetime2] NOT NULL, |
| CONSTRAINT [pk__TableStatsID_ID] PRIMARY KEY CLUSTERED | CONSTRAINT [pk__TableStatsID_ID] PRIMARY KEY CLUSTERED | ||
| - | ( | + | ([TableStatsID] ASC) |
| - | [TableStatsID] ASC | + | WITH (DATA_COMPRESSION |
| - | )WITH (PAD_INDEX | + | |
| - | ) | + | |
| GO | GO | ||
| - | ALTER TABLE [Windows].[TableStats] ADD DEFAULT (getdate()) FOR [CollectionDate] | + | ALTER TABLE [Windows].[TableStats] ADD |
| + | | ||
| GO | GO | ||
| - | ALTER TABLE [Windows].[TableStats] WITH CHECK ADD FOREIGN KEY([InstanceID]) | + | ALTER TABLE [Windows].[TableStats] WITH CHECK ADD FOREIGN |
| - | REFERENCES [Windows].[Instance] ([InstanceID]) | + | KEY([InstanceID]) REFERENCES [Windows].[Instance] ([InstanceID]); |
| GO | GO | ||
| - | SET ANSI_NULLS | + | CREATE procedure [Windows].[TableStats_Insert] |
| + | @InstanceID int, | ||
| + | @DbName sysname, | ||
| + | @SchemaName sysname, | ||
| + | @TableName sysname, | ||
| + | @TotalRowCount bigint, | ||
| + | @DataSizeInMB int, | ||
| + | @IndexSizeInMB int | ||
| + | AS | ||
| + | BEGIN | ||
| + | SET NOCOUNT | ||
| + | INSERT INTO Windows.TableStats (InstanceID, | ||
| + | TableName, TotalRowCount, | ||
| + | VALUES (@InstanceID, | ||
| + | | ||
| + | END | ||
| + | |||
| GO | GO | ||
| + | |||
| + | IF NOT EXISTS ( SELECT | ||
| + | FROM [sys].[tables] | ||
| + | WHERE | ||
| + | AND [type] = N' | ||
| + | CREATE TABLE [Windows].[InstanceConfig] | ||
| + | ( | ||
| + | [InstanceConfigID] [int] IDENTITY(1, | ||
| + | [InstanceID] [int] NOT NULL, | ||
| + | [ConfigurationID] [int] NOT NULL , | ||
| + | [Name] [nvarchar](35) NOT NULL , | ||
| + | [Value] [sql_variant] NULL , | ||
| + | [ValueInUse] [sql_variant] NULL , | ||
| + | [CollectionDate] [datetime2] NOT NULL, | ||
| + | CONSTRAINT [pk__InstanceConfigID_ID] PRIMARY KEY CLUSTERED | ||
| + | ([InstanceConfigID] ASC) | ||
| + | WITH (DATA_COMPRESSION = PAGE)); | ||
| + | GO | ||
| + | |||
| + | ALTER TABLE [Windows].[InstanceConfig] | ||
| + | ADD DEFAULT (getdate()) FOR [CollectionDate]; | ||
| + | GO | ||
| + | |||
| + | ALTER TABLE [Windows].[InstanceConfig] ADD CONSTRAINT | ||
| + | [FK_InstanceConfig_InstanceID] | ||
| + | FOREIGN KEY (InstanceID) REFERENCES [Windows].[Instance] (InstanceID); | ||
| + | GO | ||
| + | |||
| + | CREATE PROCEDURE [Windows].[InstanceConfig_Insert] | ||
| + | @InstanceID int | ||
| + | , @ConfigurationID int | ||
| + | , @Name nvarchar(35) | ||
| + | , @Value sql_variant | ||
| + | , @ValueInUse sql_variant | ||
| + | AS | ||
| + | BEGIN | ||
| + | SET NOCOUNT ON; | ||
| + | |||
| + | INSERT INTO Windows.InstanceConfig ( | ||
| + | InstanceID | ||
| + | , ConfigurationID | ||
| + | , Name | ||
| + | , Value | ||
| + | , ValueInUse) | ||
| + | VALUES ( | ||
| + | @InstanceID | ||
| + | , @ConfigurationID | ||
| + | , @Name | ||
| + | , @Value | ||
| + | , @ValueInUse); | ||
| + | END | ||
| + | GO | ||
| + | IF NOT EXISTS ( SELECT | ||
| + | FROM [sys].[tables] | ||
| + | WHERE | ||
| + | AND [type] = N' | ||
| + | CREATE TABLE [Windows].[InstanceDmvPerfCounter] | ||
| + | ( | ||
| + | [InstanceDmvPerfCounterID] [int] IDENTITY(1, | ||
| + | [InstanceID] [int] NOT NULL, | ||
| + | [object_name] [nvarchar](128) NOT NULL , | ||
| + | [counter_name] [nvarchar](128) NOT NULL , | ||
| + | [instance_name] [nvarchar](128) NULL , | ||
| + | [cntr_value] [bigint] NOT NULL , | ||
| + | [cntr_type] [int] NOT NULL , | ||
| + | [CollectionDate] [datetime2] NOT NULL, | ||
| + | CONSTRAINT [pk__InstanceDmvPerfCounter_ID] PRIMARY KEY CLUSTERED | ||
| + | ([InstanceDmvPerfCounterID] ASC) | ||
| + | WITH (DATA_COMPRESSION = PAGE)); | ||
| + | GO | ||
| + | |||
| + | ALTER TABLE [Windows].[InstanceDmvPerfCounter] | ||
| + | ADD DEFAULT (getdate()) FOR [CollectionDate]; | ||
| + | GO | ||
| + | |||
| + | ALTER TABLE [Windows].[InstanceDmvPerfCounter] ADD CONSTRAINT | ||
| + | [FK_InstanceDmvPerfCounter_InstanceID] | ||
| + | REFERENCES [Windows].[Instance] (InstanceID); | ||
| + | GO | ||
| + | |||
| + | CREATE PROCEDURE [Windows].[InstanceDmvPerfCounter_Insert] | ||
| + | @InstanceID int | ||
| + | , @object_name nvarchar(128) | ||
| + | , @counter_name nvarchar(128) | ||
| + | , @instance_name nvarchar(128) | ||
| + | , @cntr_value bigint | ||
| + | , @cntr_type int | ||
| + | AS | ||
| + | BEGIN | ||
| + | SET NOCOUNT ON; | ||
| + | |||
| + | INSERT INTO Windows.InstanceDmvPerfCounter ( | ||
| + | InstanceID | ||
| + | , object_name | ||
| + | , counter_name | ||
| + | , instance_name | ||
| + | , cntr_value | ||
| + | , cntr_type) | ||
| + | VALUES ( | ||
| + | @InstanceID | ||
| + | , @object_name | ||
| + | , @counter_name | ||
| + | , @instance_name | ||
| + | , @cntr_value | ||
| + | , @cntr_type); | ||
| + | END | ||
| + | GO | ||
| + | </ | ||
| + | |||
| + | JiMetrics with columnstore, | ||
| + | <code tsql JiMetricsColumnstore.sql> | ||
| + | CREATE DATABASE JiMetrics; | ||
| + | GO | ||
| + | ALTER DATABASE JiMetrics SET RECOVERY SIMPLE; | ||
| + | GO | ||
| + | USE [JiMetrics]; | ||
| + | GO | ||
| + | |||
| + | IF EXISTS (SELECT * FROM sys.schemas WHERE name = N' | ||
| + | DROP SCHEMA [Windows]; | ||
| + | GO | ||
| + | |||
| + | CREATE SCHEMA [Windows] AUTHORIZATION [dbo]; | ||
| + | GO | ||
| + | |||
| + | SET ANSI_NULLS ON; | ||
| + | GO | ||
| + | |||
| + | SET QUOTED_IDENTIFIER ON; | ||
| + | GO | ||
| + | |||
| + | CREATE TABLE [Windows].[Host]( | ||
| + | [HostID] [int] IDENTITY(1, | ||
| + | [HostName] [nvarchar](20) NOT NULL, | ||
| + | [Domain] [nvarchar](50) NULL, | ||
| + | [OS] [nvarchar](50) NULL, | ||
| + | [OSArchitecture] [nchar](6) NULL, | ||
| + | [OSServicePack] [nvarchar](20) NULL, | ||
| + | [OSVersionNumber] [nvarchar](20) NULL, | ||
| + | [HardwareModel] [nvarchar](50) NULL, | ||
| + | [HardwareVendor] [nvarchar](50) NULL, | ||
| + | [MemorySizeGB] [int] NULL, | ||
| + | [CPUType] [nvarchar] (50) NULL, | ||
| + | [CoreCount] [int] NULL, | ||
| + | [SMBIOSVersion] [nvarchar](50) NULL, | ||
| + | [BIOSReleaseDate] [DATE] NULL, | ||
| + | [SerialNumber] [nvarchar](50) NULL, | ||
| + | [IsVM] AS (CASE HardwareVendor | ||
| + | WHEN ' | ||
| + | WHEN ' | ||
| + | WHEN ' | ||
| + | ELSE ' | ||
| + | END) PERSISTED, | ||
| + | [IsActive] [nchar](1) NOT NULL, | ||
| + | [LastUpdate] [datetime2] NULL | ||
| + | | ||
| + | | ||
| + | WITH (DATA_COMPRESSION = PAGE)); | ||
| + | |||
| + | GO | ||
| + | |||
| + | ALTER TABLE [Windows].[Host] | ||
| + | [CK_Host_IsActive] CHECK (([IsActive]=' | ||
| + | | ||
| + | GO | ||
| + | |||
| + | ALTER TABLE [Windows].[Host] CHECK CONSTRAINT [CK_Host_IsActive]; | ||
| + | GO | ||
| + | |||
| + | ALTER TABLE [Windows].[Host] ADD CONSTRAINT [DF_Host_IsActive] | ||
| + | DEFAULT (' | ||
| + | GO | ||
| + | |||
| + | ALTER TABLE [Windows].[Host] ADD CONSTRAINT [DF_Host_LastUpdate] | ||
| + | DEFAULT (getdate()) FOR [LastUpdate]; | ||
| + | GO | ||
| + | |||
| + | CREATE PROCEDURE Windows.Host_Select_HostID_HostName | ||
| + | @IsActive nchar(1) = ' | ||
| + | AS | ||
| + | BEGIN | ||
| + | SET NOCOUNT ON; | ||
| + | |||
| + | SELECT HostID, HostName FROM Windows.Host | ||
| + | WHERE IsActive = @IsActive; | ||
| + | END | ||
| + | GO | ||
| + | CREATE PROCEDURE Windows.Host_Update | ||
| + | @HostID int = 0 | ||
| + | , @Domain nvarchar(50) = NULL | ||
| + | , @OS nvarchar(50) = NULL | ||
| + | , @OSArchitecture nchar(6) = NULL | ||
| + | , @OSServicePack nvarchar(20) = NULL | ||
| + | , @OSVersionNumber nvarchar(20) = NULL | ||
| + | , @HardwareModel nvarchar(50) = NULL | ||
| + | , @HardwareVendor nvarchar(50) = NULL | ||
| + | , @MemorySizeGB int = NULL | ||
| + | , @CPUType nvarchar(50) = NULL | ||
| + | , @CoreCount int = NULL | ||
| + | , @SMBIOSVersion nvarchar(50) = NULL | ||
| + | , @BIOSReleaseDate DATE = NULL | ||
| + | , @SerialNumber nvarchar(50) = NULL | ||
| + | , @IsActive nchar(1) = ' | ||
| + | AS | ||
| + | BEGIN | ||
| + | SET NOCOUNT ON; | ||
| + | |||
| + | UPDATE Windows.Host SET | ||
| + | Domain = @Domain | ||
| + | , OS = @OS | ||
| + | , OSArchitecture = @OSArchitecture | ||
| + | , OSServicePack = @OSServicePack | ||
| + | , OSVersionNumber = @OSVersionNumber | ||
| + | , HardwareModel = @HardwareModel | ||
| + | , HardwareVendor = @HardwareVendor | ||
| + | , MemorySizeGB = @MemorySizeGB | ||
| + | , CPUType = @CPUType | ||
| + | , CoreCount = @CoreCount | ||
| + | , SMBIOSVersion = @SMBIOSVersion | ||
| + | , BIOSReleaseDate = @BIOSReleaseDate | ||
| + | , SerialNumber = @SerialNumber | ||
| + | , IsActive = @IsActive | ||
| + | WHERE HostID = @HostID; | ||
| + | END | ||
| + | GO | ||
| + | INSERT INTO Windows.Host (HostName) VALUES (' | ||
| + | INSERT INTO Windows.Host (HostName) VALUES (' | ||
| + | |||
| + | |||
| + | CREATE TABLE [Windows].[Instance]( | ||
| + | [InstanceID] [int] IDENTITY(1, | ||
| + | [HostID] [int] NOT NULL, | ||
| + | [InstanceName] [nvarchar](30) NOT NULL, | ||
| + | [StartupAcct] [nvarchar](30) NOT NULL, | ||
| + | [InstanceEdition] [nvarchar](50) NULL, | ||
| + | [InstanceEditionID] [bigint] NULL, | ||
| + | [InstanceVersion] [nchar](20) NULL, | ||
| + | [InstanceServicePack] [nvarchar](20) NULL, | ||
| + | [IsActive] [nchar](1) NOT NULL, | ||
| + | [LastUpdate] [datetime2] NULL | ||
| + | | ||
| + | | ||
| + | WITH (DATA_COMPRESSION = PAGE)); | ||
| + | |||
| + | GO | ||
| + | |||
| + | ALTER TABLE [Windows].[Instance] | ||
| + | [CK_Instance_IsActive] CHECK (([IsActive]=' | ||
| + | | ||
| + | GO | ||
| + | |||
| + | ALTER TABLE [Windows].[Instance] CHECK CONSTRAINT | ||
| + | [CK_Instance_IsActive]; | ||
| + | GO | ||
| + | |||
| + | ALTER TABLE [Windows].[Instance] ADD CONSTRAINT [DF_Instance_IsActive] | ||
| + | DEFAULT (' | ||
| + | GO | ||
| + | |||
| + | ALTER TABLE [Windows].[Instance] ADD CONSTRAINT | ||
| + | [DF_Instance_LastUpdate] DEFAULT (getdate()) FOR [LastUpdate]; | ||
| + | GO | ||
| + | |||
| + | ALTER TABLE [Windows].[Instance] ADD CONSTRAINT [FK_Instance_HostID] | ||
| + | FOREIGN KEY (HostID) REFERENCES [Windows].[Host] (HostID); | ||
| + | GO | ||
| + | |||
| + | CREATE PROCEDURE Windows.Instance_Select_InstanceID_InstanceName | ||
| + | @IsActive nchar(1) = ' | ||
| + | AS | ||
| + | BEGIN | ||
| + | SET NOCOUNT ON; | ||
| + | |||
| + | SELECT InstanceID, InstanceName FROM Windows.Instance | ||
| + | WHERE IsActive = @IsActive; | ||
| + | END | ||
| + | GO | ||
| + | |||
| + | CREATE PROCEDURE Windows.Instance_Insert | ||
| + | | ||
| + | , @InstanceName nvarchar(30) | ||
| + | , @StartupAcct nvarchar(30) | ||
| + | , @IsActive nvarchar(1) | ||
| + | AS | ||
| + | BEGIN | ||
| + | SET NOCOUNT ON; | ||
| + | |||
| + | IF NOT EXISTS (SELECT * FROM Windows.Instance | ||
| + | WHERE InstanceName = @InstanceName) | ||
| + | | ||
| + | IsActive) VALUES (@HostID, @InstanceName, | ||
| + | END | ||
| + | GO | ||
| + | |||
| + | CREATE PROCEDURE Windows.Instance_Update | ||
| + | @InstanceID int = 0 | ||
| + | , @InstanceEdition nvarchar(50) = NULL | ||
| + | , @InstanceEditionID bigint = NULL | ||
| + | , @InstanceVersion nvarchar(20) = NULL | ||
| + | , @InstanceServicePack nvarchar(20) = NULL | ||
| + | , @StartupAcct nvarchar(30) = NULL | ||
| + | , @IsActive nchar(1) = ' | ||
| + | AS | ||
| + | BEGIN | ||
| + | SET NOCOUNT ON; | ||
| + | |||
| + | UPDATE Windows.Instance SET | ||
| + | InstanceEdition = @InstanceEdition | ||
| + | , InstanceEditionID = @InstanceEditionID | ||
| + | , InstanceVersion = @InstanceVersion | ||
| + | , InstanceServicePack = @InstanceServicePack | ||
| + | , StartupAcct = @StartupAcct | ||
| + | , IsActive = @IsActive | ||
| + | WHERE InstanceID = @InstanceID; | ||
| + | END | ||
| + | GO | ||
| + | |||
| + | CREATE TABLE [Windows].[Storage]( | ||
| + | [RecordID] [int] IDENTITY(1, | ||
| + | , [HostID] [int] NOT NULL | ||
| + | , [DiskPath] [nvarchar](300) NOT NULL | ||
| + | , [DiskFormat] [nvarchar](25) NOT NULL | ||
| + | , [DiskLabel] [nvarchar](100) NULL | ||
| + | , [DiskSizeGB] [int] NOT NULL | ||
| + | , [DiskFreeGB] [int] NOT NULL | ||
| + | , [CollectionDate] [datetime2] NOT NULL) | ||
| + | WITH (DATA_COMPRESSION = PAGE); | ||
| - | SET QUOTED_IDENTIFIER ON | ||
| GO | GO | ||
| + | ALTER TABLE [Windows].[Storage] | ||
| + | ADD DEFAULT (getdate()) FOR [CollectionDate]; | ||
| + | GO | ||
| + | ALTER TABLE [Windows].[Storage] WITH CHECK ADD CONSTRAINT | ||
| + | [ck__Storage_DiskSize] CHECK (([DiskSizeGB]> | ||
| + | GO | ||
| + | |||
| + | ALTER TABLE [Windows].[Storage] | ||
| + | CHECK CONSTRAINT [ck__Storage_DiskSize]; | ||
| + | GO | ||
| + | |||
| + | CREATE CLUSTERED COLUMNSTORE INDEX cci_Storage_ ON [Windows].[Storage] | ||
| + | GO | ||
| + | |||
| + | CREATE procedure [Windows].[Storage_Insert] | ||
| + | @HostID [int] | ||
| + | , @DiskPath [nvarchar](1000) | ||
| + | , @DiskFormat [nvarchar](50) | ||
| + | , @DiskLabel [nvarchar](100) | ||
| + | , @DiskSizeGB [int] | ||
| + | , @DiskFreeGB [int] | ||
| + | AS | ||
| + | |||
| + | BEGIN | ||
| + | SET NOCOUNT ON; | ||
| + | INSERT INTO Windows.Storage ( | ||
| + | HostID | ||
| + | , DiskPath | ||
| + | , DiskFormat | ||
| + | , DiskLabel | ||
| + | , DiskSizeGB | ||
| + | , DiskFreeGB) | ||
| + | VALUES ( | ||
| + | @HostID | ||
| + | , @DiskPath | ||
| + | , @DiskFormat | ||
| + | , @DiskLabel | ||
| + | , @DiskSizeGB | ||
| + | , @DiskFreeGB); | ||
| + | END | ||
| + | GO | ||
| + | |||
| + | CREATE TABLE [Windows].[DbFileStats]( | ||
| + | [DbFileStatsID] [int] IDENTITY(1, | ||
| + | [InstanceID] [int] NOT NULL, | ||
| + | [DbName] [sysname] NOT NULL, | ||
| + | [FileLogicalName] [sysname] NOT NULL, | ||
| + | [FilePhysicalName] [sysname] NOT NULL, | ||
| + | [FileGroupName] [sysname] NOT NULL, | ||
| + | [FileSizeInMB] [int] NOT NULL, | ||
| + | [FreeSizeInMB] [int] NOT NULL, | ||
| + | [Max_Size] [int] NOT NULL, | ||
| + | [Growth] [int] NOT NULL, | ||
| + | [Is_Percent_Growth] nchar(1) NOT NULL, | ||
| + | [CollectionDate] [datetime2] NOT NULL) | ||
| + | WITH (DATA_COMPRESSION = PAGE); | ||
| + | |||
| + | GO | ||
| + | |||
| + | ALTER TABLE [Windows].[DbFileStats] | ||
| + | ADD DEFAULT (getdate()) FOR [CollectionDate]; | ||
| + | GO | ||
| + | |||
| + | ALTER TABLE [Windows].[DbFileStats] | ||
| + | [CK_DbFileStats_Is_Percent_Growth] CHECK | ||
| + | (([Is_Percent_Growth]=' | ||
| + | [Is_Percent_Growth]=' | ||
| + | GO | ||
| + | |||
| + | ALTER TABLE [Windows].[DbFileStats] ADD CONSTRAINT | ||
| + | [DF_DbFileStats_Is_Percent_Growth] | ||
| + | [Is_Percent_Growth]; | ||
| + | GO | ||
| + | |||
| + | CREATE CLUSTERED COLUMNSTORE INDEX cci_DbFileStats ON [Windows].[DbFileStats] | ||
| + | GO | ||
| + | |||
| + | CREATE PROCEDURE [Windows].[DbFileStats_Insert] | ||
| + | @InstanceID int | ||
| + | , @DbName sysname | ||
| + | , @FileLogicalName sysname | ||
| + | , @FilePhysicalName nvarchar(500) | ||
| + | , @FileGroupName sysname | ||
| + | , @FileSizeInMB [int] | ||
| + | , @FreeSizeInMB [int] | ||
| + | , @max_size [int] | ||
| + | , @growth [int] | ||
| + | , @is_percent_growth nchar(1) | ||
| + | AS | ||
| + | BEGIN | ||
| + | SET NOCOUNT ON; | ||
| + | |||
| + | INSERT INTO Windows.DbFileStats ( | ||
| + | InstanceID | ||
| + | , DbName | ||
| + | , FileLogicalName | ||
| + | , FilePhysicalName | ||
| + | , FileGroupName | ||
| + | , FileSizeInMB | ||
| + | , FreeSizeInMB | ||
| + | , max_size | ||
| + | , growth | ||
| + | , is_percent_growth) | ||
| + | VALUES ( | ||
| + | @InstanceID | ||
| + | , @DbName | ||
| + | , @FileLogicalName | ||
| + | , @FilePhysicalName | ||
| + | , @FileGroupName | ||
| + | , @FileSizeInMB | ||
| + | , @FreeSizeInMB | ||
| + | , @max_size | ||
| + | , @growth | ||
| + | , @is_percent_growth); | ||
| + | END | ||
| + | |||
| + | GO | ||
| + | |||
| + | CREATE TABLE [Windows].[TableStats]( | ||
| + | [TableStatsID] [int] IDENTITY(1, | ||
| + | [InstanceID] [int] NOT NULL, | ||
| + | [DbName] [sysname] NOT NULL, | ||
| + | [SchemaName] [sysname] NOT NULL, | ||
| + | [TableName] [sysname] NOT NULL, | ||
| + | [TotalRowCount] [bigint] NOT NULL, | ||
| + | [DataSizeInMB] [int] NOT NULL, | ||
| + | [IndexSizeInMB] [int] NOT NULL, | ||
| + | [CollectionDate] [datetime2] NOT NULL) | ||
| + | WITH (DATA_COMPRESSION = PAGE); | ||
| + | |||
| + | GO | ||
| + | |||
| + | ALTER TABLE [Windows].[TableStats] ADD | ||
| + | DEFAULT (getdate()) FOR [CollectionDate]; | ||
| + | GO | ||
| + | |||
| + | CREATE CLUSTERED COLUMNSTORE INDEX cci_TableStats ON [Windows].[TableStats] | ||
| + | GO | ||
| + | |||
| CREATE procedure [Windows].[TableStats_Insert] | CREATE procedure [Windows].[TableStats_Insert] | ||
| - | | + | @InstanceID int, |
| - | @DbName sysname, | + | @DbName sysname, |
| - | @SchemaName sysname, | + | @SchemaName sysname, |
| - | @TableName sysname, | + | @TableName sysname, |
| - | @TotalRowCount bigint, | + | @TotalRowCount bigint, |
| - | @DataSizeInMB int, | + | @DataSizeInMB int, |
| - | @IndexSizeInMB int | + | @IndexSizeInMB int |
| AS | AS | ||
| BEGIN | BEGIN | ||
| - | | + | SET NOCOUNT ON; |
| - | INSERT INTO Windows.TableStats (InstanceID, | + | INSERT INTO Windows.TableStats (InstanceID, |
| - | VALUES (@InstanceID, | + | TableName, TotalRowCount, |
| + | VALUES (@InstanceID, | ||
| + | @TotalRowCount, | ||
| END | END | ||
| GO | GO | ||
| - | IF NOT EXISTS ( SELECT * | + | IF NOT EXISTS ( SELECT |
| - | FROM [sys].[tables] | + | FROM [sys].[tables] |
| - | WHERE [name] = N' | + | WHERE |
| - | AND [type] = N' | + | AND [type] = N' |
| CREATE TABLE [Windows].[InstanceConfig] | CREATE TABLE [Windows].[InstanceConfig] | ||
| ( | ( | ||
| - | [InstanceConfigID] [int] IDENTITY(1, | + | |
| - | | + | |
| [ConfigurationID] [int] NOT NULL , | [ConfigurationID] [int] NOT NULL , | ||
| [Name] [nvarchar](35) NOT NULL , | [Name] [nvarchar](35) NOT NULL , | ||
| - | [Value] [sql_variant] NULL , | + | [Value] [int] NULL , |
| - | [ValueInUse] [sql_variant] NULL , | + | [ValueInUse] [int] NULL , |
| - | [CollectionDate] [datetime2] NOT NULL, | + | [CollectionDate] [datetime2] NOT NULL) |
| - | CONSTRAINT [pk__InstanceConfigID_ID] PRIMARY KEY CLUSTERED | + | WITH (DATA_COMPRESSION |
| - | ( | + | |
| - | [InstanceConfigID] ASC | + | |
| - | )WITH (PAD_INDEX | + | |
| - | ) | + | |
| GO | GO | ||
| - | ALTER TABLE [Windows].[InstanceConfig] ADD DEFAULT (getdate()) FOR [CollectionDate] | + | ALTER TABLE [Windows].[InstanceConfig] |
| + | | ||
| GO | GO | ||
| - | ALTER TABLE [Windows].[InstanceConfig] | + | CREATE CLUSTERED COLUMNSTORE INDEX cci_InstanceConfig ON [Windows].[InstanceConfig] |
| GO | GO | ||
| CREATE PROCEDURE [Windows].[InstanceConfig_Insert] | CREATE PROCEDURE [Windows].[InstanceConfig_Insert] | ||
| - | | + | @InstanceID int |
| - | , @ConfigurationID int | + | , @ConfigurationID int |
| - | , @Name nvarchar(35) | + | , @Name nvarchar(35) |
| - | , @Value | + | , @Value |
| - | , @ValueInUse | + | , @ValueInUse |
| AS | AS | ||
| BEGIN | BEGIN | ||
| - | | + | SET NOCOUNT ON; |
| - | | + | INSERT INTO Windows.InstanceConfig ( |
| - | InstanceID | + | InstanceID |
| - | , ConfigurationID | + | , ConfigurationID |
| - | , Name | + | , Name |
| - | , Value | + | , Value |
| - | , ValueInUse) | + | , ValueInUse) |
| - | VALUES ( | + | VALUES ( |
| - | @InstanceID | + | @InstanceID |
| - | , @ConfigurationID | + | , @ConfigurationID |
| - | , @Name | + | , @Name |
| - | , @Value | + | , @Value |
| - | , @ValueInUse); | + | , @ValueInUse); |
| END | END | ||
| GO | GO | ||
| - | IF NOT EXISTS ( SELECT * | + | IF NOT EXISTS ( SELECT |
| - | FROM [sys].[tables] | + | FROM [sys].[tables] |
| - | WHERE [name] = N' | + | WHERE |
| - | AND [type] = N' | + | AND [type] = N' |
| CREATE TABLE [Windows].[InstanceDmvPerfCounter] | CREATE TABLE [Windows].[InstanceDmvPerfCounter] | ||
| ( | ( | ||
| - | [InstanceDmvPerfCounterID] [int] IDENTITY(1, | + | |
| - | | + | |
| [object_name] [nvarchar](128) NOT NULL , | [object_name] [nvarchar](128) NOT NULL , | ||
| [counter_name] [nvarchar](128) NOT NULL , | [counter_name] [nvarchar](128) NOT NULL , | ||
| Line 455: | Line 958: | ||
| [CollectionDate] [datetime2] NOT NULL, | [CollectionDate] [datetime2] NOT NULL, | ||
| CONSTRAINT [pk__InstanceDmvPerfCounter_ID] PRIMARY KEY CLUSTERED | CONSTRAINT [pk__InstanceDmvPerfCounter_ID] PRIMARY KEY CLUSTERED | ||
| - | ( | + | ([InstanceDmvPerfCounterID] ASC) |
| - | [InstanceDmvPerfCounterID] ASC | + | WITH (DATA_COMPRESSION |
| - | )WITH (PAD_INDEX | + | |
| - | ) | + | |
| GO | GO | ||
| - | ALTER TABLE [Windows].[InstanceDmvPerfCounter] ADD DEFAULT (getdate()) FOR [CollectionDate] | + | ALTER TABLE [Windows].[InstanceDmvPerfCounter] |
| + | | ||
| GO | GO | ||
| - | ALTER TABLE [Windows].[InstanceDmvPerfCounter] ADD CONSTRAINT [FK_InstanceDmvPerfCounter_InstanceID] FOREIGN KEY (InstanceID) REFERENCES [Windows].[Instance] (InstanceID); | + | ALTER TABLE [Windows].[InstanceDmvPerfCounter] ADD CONSTRAINT |
| + | [FK_InstanceDmvPerfCounter_InstanceID] | ||
| + | REFERENCES [Windows].[Instance] (InstanceID); | ||
| GO | GO | ||
| CREATE PROCEDURE [Windows].[InstanceDmvPerfCounter_Insert] | CREATE PROCEDURE [Windows].[InstanceDmvPerfCounter_Insert] | ||
| - | | + | @InstanceID int |
| - | , @object_name nvarchar(128) | + | , @object_name nvarchar(128) |
| - | , @counter_name nvarchar(128) | + | , @counter_name nvarchar(128) |
| - | , @instance_name nvarchar(128) | + | , @instance_name nvarchar(128) |
| - | , @cntr_value bigint | + | , @cntr_value bigint |
| - | , @cntr_type int | + | , @cntr_type int |
| AS | AS | ||
| BEGIN | BEGIN | ||
| - | | + | SET NOCOUNT ON; |
| - | | + | INSERT INTO Windows.InstanceDmvPerfCounter ( |
| - | InstanceID | + | InstanceID |
| - | , object_name | + | , object_name |
| - | , counter_name | + | , counter_name |
| - | , instance_name | + | , instance_name |
| - | , cntr_value | + | , cntr_value |
| - | , cntr_type) | + | , cntr_type) |
| - | VALUES ( | + | VALUES ( |
| - | @InstanceID | + | @InstanceID |
| - | , @object_name | + | , @object_name |
| - | , @counter_name | + | , @counter_name |
| - | , @instance_name | + | , @instance_name |
| - | , @cntr_value | + | , @cntr_value |
| - | , @cntr_type); | + | , @cntr_type); |
| END | END | ||
| GO | GO | ||
| </ | </ | ||
db/sqlserver/jimetrics.1383621043.txt.gz · Last modified: (external edit)
