Source/NuGetGallery.Operations/Scripts/NuGetDownloadsCreateTables.sql (155 lines of code) (raw):
IF OBJECT_ID('[dbo].[Dimension_UserAgent]') IS NULL
CREATE TABLE [dbo].[Dimension_UserAgent]
(
[Id] INT IDENTITY,
[Value] VARCHAR(900),
[Client] VARCHAR(128),
[ClientMajorVersion] INT,
[ClientMinorVersion] INT,
[ClientCategory] VARCHAR(64),
CONSTRAINT [PK_Dimension_UserAgent] PRIMARY KEY CLUSTERED ( [Id] )
)
GO
IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name = 'Dimension_UserAgent_NCI_Value')
CREATE UNIQUE NONCLUSTERED INDEX [Dimension_UserAgent_NCI_Value] ON [dbo].[Dimension_UserAgent] ( [Value] )
GO
IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name = 'Dimension_UserAgent_NCI_Client')
CREATE NONCLUSTERED INDEX [Dimension_UserAgent_NCI_Client] ON [dbo].[Dimension_UserAgent] ( [Client] )
GO
IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name = 'Dimension_UserAgent_NCI_ClientMajorVersion_ClientMinorVersion')
CREATE NONCLUSTERED INDEX [Dimension_UserAgent_NCI_ClientMajorVersion_ClientMinorVersion] ON [dbo].[Dimension_UserAgent] ( [ClientMajorVersion], [ClientMinorVersion] )
GO
IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name = 'Dimension_UserAgent_NCI_ClientCategory')
CREATE NONCLUSTERED INDEX [Dimension_UserAgent_NCI_ClientCategory] ON [dbo].[Dimension_UserAgent] ( [ClientCategory] )
GO
IF OBJECT_ID('[dbo].[Dimension_Package]') IS NULL
CREATE TABLE [dbo].[Dimension_Package]
(
[Id] INT IDENTITY,
[PackageId] NVARCHAR(128),
[PackageVersion] NVARCHAR(64),
[PackageListed] BIT,
[PackageTitle] NVARCHAR(256),
[PackageDescription] NVARCHAR(MAX),
[PackageIconUrl] NVARCHAR(MAX),
CONSTRAINT [PK_Dimension_Package] PRIMARY KEY CLUSTERED ([Id])
)
GO
IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name = 'Dimension_Package_NCI_PackageId_PackageVersion')
CREATE UNIQUE NONCLUSTERED INDEX [Dimension_Package_NCI_PackageId_PackageVersion] ON [dbo].[Dimension_Package] ( [PackageId], [PackageVersion] )
GO
IF OBJECT_ID('[dbo].[Dimension_Date]') IS NULL
CREATE TABLE [dbo].[Dimension_Date] (
[Id] INT IDENTITY NOT NULL,
[Date] DATE NULL,
[DateName] NVARCHAR (150) NOT NULL,
[DayOfWeek] INT NULL,
[DayOfWeekName] NVARCHAR (30) NOT NULL,
[MonthName] NVARCHAR (30) NOT NULL,
[WeekdayIndicator] NVARCHAR (10) NOT NULL,
[DayOfYear] INT NULL,
[WeekOfYear] INT NULL,
[WeekOfYearName] NVARCHAR (10) NOT NULL,
[WeekOfYearNameInYear] NVARCHAR (50) NOT NULL,
[MonthOfYear] INT NULL,
[MonthOfYearName] NVARCHAR (10) NOT NULL,
[MonthOfYearNameInYear] NVARCHAR (50) NOT NULL,
[Quarter] INT NULL,
[QuarterName] NVARCHAR (10) NOT NULL,
[QuarterNameInYear] NVARCHAR (50) NOT NULL,
[HalfYear] INT NULL,
[HalfYearName] NVARCHAR (10) NOT NULL,
[HalfYearNameInYear] NVARCHAR (50) NOT NULL,
[Year] INT NULL,
[YearName] NVARCHAR (50) NOT NULL,
[FiscalDayOfYear] INT NULL,
[FiscalWeekOfYear] INT NULL,
[FiscalWeekOfYearName] NVARCHAR (10) NOT NULL,
[FiscalWeekOfYearNameInYear] NVARCHAR (20) NOT NULL,
[FiscalMonthOfYear] INT NULL,
[FiscalMonthOfYearName] NVARCHAR (10) NOT NULL,
[FiscalMonthOfYearNameInYear] NVARCHAR (10) NOT NULL,
[FiscalQuarter] INT NULL,
[FiscalQuarterName] NVARCHAR (10) NOT NULL,
[FiscalQuarterNameInYear] NVARCHAR (20) NOT NULL,
[FiscalHalfYear] INT NULL,
[FiscalHalfYearName] NVARCHAR (10) NOT NULL,
[FiscalHalfYearNameInYear] NVARCHAR (10) NOT NULL,
[FiscalYear] INT NULL,
[FiscalYearName] NVARCHAR (10) NOT NULL,
CONSTRAINT [PK_Dimension_Date] PRIMARY KEY CLUSTERED ( [Id] )
);
go
IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name = 'Dimension_Date_NCI_Date')
CREATE UNIQUE NONCLUSTERED INDEX [Dimension_Date_NCI_Date] ON [dbo].[Dimension_Date] ( [Date] )
GO
IF OBJECT_ID('[dbo].[Dimension_Time]') IS NULL
CREATE TABLE [dbo].[Dimension_Time]
(
[Id] INT IDENTITY,
[HourOfDay] INT
CONSTRAINT [PK_Dimension_Time] PRIMARY KEY CLUSTERED ( [Id] )
)
GO
IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name = 'Dimension_Time_NCI_HourOfDay')
CREATE UNIQUE NONCLUSTERED INDEX [Dimension_Time_NCI_HourOfDay] ON [Dimension_Time] ( [HourOfDay] )
GO
IF OBJECT_ID('[dbo].[Dimension_Operation]') IS NULL
CREATE TABLE [dbo].[Dimension_Operation]
(
[Id] INT IDENTITY,
[Operation] NVARCHAR(18)
CONSTRAINT [PK_Dimension_Operation] PRIMARY KEY CLUSTERED ( [Id] )
)
GO
IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name = 'Dimension_Operation_NCI_Operation')
CREATE UNIQUE NONCLUSTERED INDEX [Dimension_Operation_NCI_Operation] ON [Dimension_Operation] ( [Operation] )
GO
IF OBJECT_ID('[dbo].[Dimension_Project]') IS NULL
CREATE TABLE [dbo].[Dimension_Project]
(
[Id] INT IDENTITY,
[ProjectTypes] NVARCHAR(450)
CONSTRAINT [PK_Dimension_Project] PRIMARY KEY CLUSTERED ( [Id] )
)
GO
IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name = 'Dimension_Project_NCI_ProjectTypes')
CREATE UNIQUE NONCLUSTERED INDEX [Dimension_Project_NCI_ProjectTypes] ON [Dimension_Project] ( [ProjectTypes] )
GO
IF OBJECT_ID('[dbo].[Fact_Download]') IS NULL
CREATE TABLE [dbo].[Fact_Download]
(
[Dimension_UserAgent_Id] INT,
[Dimension_Package_Id] INT,
[Dimension_Date_Id] INT,
[Dimension_Time_Id] INT,
[Dimension_Operation_Id] INT,
[Dimension_Project_Id] INT,
[DownloadCount] INT
CONSTRAINT [PK_Fact_Download] PRIMARY KEY CLUSTERED ( [Dimension_UserAgent_Id], [Dimension_Package_Id], [Dimension_Date_Id], [Dimension_Time_Id], [Dimension_Operation_Id], [Dimension_Project_Id] )
)
GO
IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name = 'Fact_Download_NCI_DownloadCount')
CREATE NONCLUSTERED INDEX [Fact_Download_NCI_DownloadCount] ON [dbo].[Fact_Download] ( [DownloadCount] )
GO
IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name = 'Fact_Download_NCI_Package_Id')
CREATE NONCLUSTERED INDEX [Fact_Download_NCI_Package_Id] ON [dbo].[Fact_Download] ( [Dimension_Package_Id] ) INCLUDE ( [Dimension_UserAgent_Id], [Dimension_Date_Id], [Dimension_Operation_Id], [DownloadCount] )
GO
IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name = 'Fact_Download_NCI_Date_Id')
CREATE NONCLUSTERED INDEX [Fact_Download_NCI_Date_Id] ON [dbo].[Fact_Download] ( [Dimension_Date_Id] ) INCLUDE ( [Dimension_Package_Id], [DownloadCount] )
GO
IF OBJECT_ID('[dbo].[ReplicationMarker]') IS NULL
CREATE TABLE [dbo].[ReplicationMarker]
(
[LastOriginalKey] INT
CONSTRAINT [PK_ReplicationMarker] PRIMARY KEY CLUSTERED ( [LastOriginalKey] )
)
GO
IF OBJECT_ID('[dbo].[PackageReportDirty]') IS NULL
CREATE TABLE [dbo].[PackageReportDirty]
(
[PackageId] NVARCHAR(128),
[DirtyCount] INT
CONSTRAINT [PK_PackageReportDirty] PRIMARY KEY CLUSTERED ( [PackageId] )
)
GO