我有一個表,你可以在我的SQL Server看到:我的搜索是SQL Server很慢
CREATE TABLE [dbo].[Cars](
[Id] [bigint] IDENTITY(1,1) NOT NULL,
[VIN] [nvarchar](max) NULL,
[ChassisNumber] [nvarchar](max) NULL,
[PlaqueCoded] [nvarchar](max) NULL,
[EngineNumber] [nvarchar](max) NULL,
[SystemType] [nvarchar](max) NULL,
[CarType] [nvarchar](max) NULL,
[CarTipe] [nvarchar](max) NULL,
[FuelType] [nvarchar](max) NULL,
[FuelSystem] [nvarchar](max) NULL,
[Model] [int] NULL,
[Color] [nvarchar](max) NULL,
[SubmitDatetime] [datetime] NOT NULL,
[ExpireDatetime] [datetime] NOT NULL,
[ReferenceOrganization] [nvarchar](max) NULL,
[ReferenceId] [nvarchar](max) NULL,
[Comment] [nvarchar](max) NULL,
CONSTRAINT [PK_Cars] PRIMARY KEY NONCLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [FullOrderDateRangePScheme]([Model])
我有1600萬條記錄這個表裏面。所以,你知道該表存儲有關汽車的所有信息。所以我決定根據車型來創建文件組,這意味着我保存汽車的同型號一個文件組中,你可以看到:
FILEGROUP [Filegroup_1395]
(NAME = N'data_1395', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\data_1395.ndf' , SIZE = 10240KB , MAXSIZE = 10240000KB , FILEGROWTH = 512000KB),
FILEGROUP [Filegroup_1396]
(NAME = N'data_1396', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\data_1396.ndf' , SIZE = 10240KB , MAXSIZE = 10240000KB , FILEGROWTH = 512000KB),
FILEGROUP [Filegroup_1397]
(NAME = N'data_1397', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\data_1397.ndf' , SIZE = 566976KB , MAXSIZE = 10240000KB , FILEGROWTH = 512000KB)
所以我創建這個函數來
CREATE PARTITION FUNCTION [FullOrderDateKeyRangePFN](int) AS RANGE LEFT FOR VALUES (1395, 1396, 1397)
GO
/****** Object: PartitionScheme [FullOrderDateRangePScheme] Script Date: 8/8/2017 11:51:38 PM ******/
CREATE PARTITION SCHEME [FullOrderDateRangePScheme] AS PARTITION [FullOrderDateKeyRangePFN] TO ([Filegroup_1395], [Filegroup_1396], [Filegroup_1397])
GO
作爲一個說明的VIN是獨一無二的。我的主要搜索vin.i創建我的表這些指標:
CREATE CLUSTERED INDEX [ClusteredIndex-20170808-232559] ON [dbo].[Cars]
(
[Model] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [FullOrderDateRangePScheme]([Model])
GO
SET ANSI_PADDING ON
GO
CREATE NONCLUSTERED INDEX [NonClusteredIndex-20170808-232524] ON [dbo].[Cars]
(
[Id] ASC
)
INCLUDE ( [VIN]) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [FullOrderDateRangePScheme]([Model])
GO
我的查詢是這樣的:
select * from cars where vin='IRFC1374GH7162K'
我的問題是:
我該如何做更多的事情來提高性能?我的索引能幫忙嗎?
我在調,使得新
請投票評論請您 –
我沒有DV,但問題和查詢使用的是什麼 – TheGameiswar
我建議看看這個鏈接(https://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/)來提出問題 – TheGameiswar