Tôi cố gắng chạy SQL Server Nâng cấp Advisor 2014 với máy chủ SQL Server 2008.
Mọi thứ đều ổn khi kết nối với máy chủ 2008 và tôi có thể chọn cơ sở dữ liệu nào tôi muốn phân tích.
Nhưng một khi được khởi chạy, nó chạy mãi mãi, không làm gì cả (ở bước Phân tích Quy tắc: 0/112 ).
Chuyện gì đang xảy ra và làm thế nào tôi có thể sửa nó?
Cả SQL Server 2008 và 2014 đều là phiên bản Express và được cài đặt trên máy tính xách tay của tôi. Thật không may, đây là cách duy nhất tôi tìm thấy để chạy Trình cố vấn nâng cấp (có quá nhiều hạn chế để chạy nó trên cơ sở dữ liệu prod / dev thực sự).
Ví dụ SQL 2008 là với SP3 khi cần thiết .
Microsoft SQL Server 2008 (SP3) - 10.0.5500.0 (X64) Sep 21 2011 22:45:45 Copyright (c) 1988-2008 Microsoft Corporation Express Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: )
Khi Cố vấn bị đóng băng, chúng ta có thể thấy 4 truy vấn ngủ (không có truy vấn hoạt động):
SELECT name,
cmptlevel
FROM
(SELECT name,
dbid,
cmptlevel,
DATABASEPROPERTYEX(name, N'UserAccess') AS 'UserAccess',
DATABASEPROPERTYEX(name, N'Status') AS 'Status',
DATABASEPROPERTYEX(name, N'IsInStandBy') AS 'IsInStandBy'
FROM master.dbo.sysdatabases) t
WHERE LOWER(name) NOT IN ('tempdb',
'master',
'model',
'msdb')
AND HAS_DBACCESS(name) = 1
AND dbid NOT IN (32767)
AND UserAccess != 'SINGLE_USER'
AND Status = 'ONLINE'
AND IsInStandBy = 0
ORDER BY name;
và
(@dbname nvarchar(256))
SELECT COUNT(*)
FROM master.dbo.sysdatabases
WHERE name=@dbname
và
SELECT 'Edition'=SUBSTRING(@@VERSION,PATINDEX(N'%Corporation%',@@VERSION)+DATALENGTH('Corporation')+2,PATINDEX(N'% on %',@@VERSION)-(PATINDEX(N'%Corporation%',@@VERSION)+DATALENGTH('Corporation')+2))
và
SELECT N'Job.Step',
j.name + N'.' + js.step_name
FROM msdb.dbo.syssubsystems ss
JOIN msdb.dbo.sysjobsteps js ON ss.subsystem = js.subsystem
JOIN msdb.dbo.sysjobs j ON js.job_id = j.job_id
WHERE ss.description_id=14555
UNION
SELECT N'Proxy',
p.name
FROM msdb.dbo.sysproxysubsystem ps
JOIN msdb.dbo.sysproxies p ON ps.proxy_id = p.proxy_id
JOIN msdb.dbo.syssubsystems ss ON ss.subsystem_id = ps.subsystem_id
WHERE ss.description_id=14555
Tất nhiên, khi chúng tôi khởi chạy chúng bằng tay, chúng hoạt động.
Và không có gì đáng nghi khi tôi khởi chạy một dấu vết SQL trên máy chủ ...