Câu hỏi trước: SQL Server thay đổi kế hoạch thực hiện
Chúng tôi đang sử dụng SQL Server 2014 Developer Edition.
SQL Server thay đổi kế hoạch thực hiện trên cùng một truy vấn và cùng một cơ sở dữ liệu và SQL Server (tôi đã kiểm tra nhiều lần).
Nếu tôi kết nối với Management Studio từ máy tính dev của mình bằng tài khoản AD, sẽ mất 18 giây để hoàn thành truy vấn (hầu hết thời gian). Nếu tôi đi với kết nối từ xa đến máy chủ và thực hiện truy vấn trong Management Studio, sẽ mất 2 giây để hoàn tất. Trên máy của đồng nghiệp tôi mất 2 giây với Management Studio và 18 nếu anh ta kết nối với ứng dụng MVC (Ado.Net).
Những việc chúng tôi đã làm
- Khởi động lại máy chủ SQL
- DBCC FREEPROCCACHE
- sp_updatestats
- thử với những người dùng khác nhau Người dùng AD và SQL
Kế hoạch thực hiện chậm
Kế hoạch thực hiện nhanh
Truy vấn
SET ANSI_NULLS ON
GO
SET ANSI_PADDING ON
GO
SET ANSI_WARNINGS ON
GO
SET ARITHABORT ON
GO
SET CONCAT_NULL_YIELDS_NULL ON
GO
SET NUMERIC_ROUNDABORT OFF
GO
SET QUOTED_IDENTIFIER ON
GO
DECLARE @ccode varchar(500)
DECLARE @PageSize int
DECLARE @PageNumber int
SET @ccode = '%skd%'
SET @PageSize = 20
SET @PageNumber = 1
SELECT DISTINCT CLASSIFICATIONS.ABBREV_TEXT,
CLASSIFICATIONS.TITLE_TEXT,
CLASSIFICATIONS.CFN_UID
FROM klasje.dbo.CLASSIFICATIONS
inner join Klasje.dbo.CFN_VERSIONS on CLASSIFICATIONS.CFN_UID = CFN_VERSIONS.CFN_UID
inner join Klasje.dbo.VERSION_CATEGORY_XREFS on CFN_VERSIONS.CVN_UID = VERSION_CATEGORY_XREFS.CVN_UID
left outer join Klasje.dbo.VELJAVNOST on CFN_VERSIONS.LIFE_CYCLE_CODE = VELJAVNOST.RV_LOW_VALUE
WHERE CATEGORY_CODE like @ccode OR DESCRIPTOR_TEXT like @ccode OR DEFINITION_TEXT like @ccode
ORDER BY ABBREV_TEXT
OFFSET @PageSize * (@PageNumber - 1) ROWS FETCH NEXT @PageSize ROWS ONLY
Cả hai kế hoạch thực hiện trên ý chính .
SELECT @@OPTIONS
trả về 5496 trong cả hai trường hợp (chậm và nhanh).