Сбор сведений о базе данных SQL Azure версии 12: неподдерживаемые инструкции
Содержание:
1. DBCC;
2.
Поскольку перед вами платформа как услуга, некоторые функции будут недоступны. Например, если вы проводите тестирование и хотите очистить буферный кэш, чтобы увидеть поведение интересующего вас запроса. Обычно используется команда:
DBCC DROPCLEANBUFFERS ();
Даже в базе данных SQL Azure версии 12 вы получите следующее сообщение об ошибке:
Msg 40518, Level 16, State 1, Line 13
DBCC command 'DROPCLEANBUFFERS'
is not supported in this version
of SQL Server.
DBCC command 'DROPCLEANBUFFERS'
is not supported in this version
of SQL Server.
На самом деле меня это устраивает. Обычно я не слишком беспокоюсь о времени, необходимом для загрузки данных в кэш или компиляции планов для большинства загрузок данных. Но что произойдет, если при компиляции планов вы имеете дело с неудачным процессом оптимизации плана (parameter sniffing) и решили выполнить довольно обыкновенный запрос:
DBCC FREEPROCCACHE ();
Вы получаете еще одно сообщение об ошибке:
Msg 2571, Level 14, State 9, Line 14
User 'dbo' does not have permission
to run DBCC freeproccache.
Это сообщение означает, что вы не можете даже совершить правильное действие и выполнить такой запрос:
DECLARE @PlanHandle VARBINARY(64)
SELECT @PlanHandle = deqs.plan_handle
FROM sys.dm_exec_query_stats AS deqs
CROSS APPLY sys.dm_exec_sql_text(deqs.sql_handle) AS dest
WHERE dest.text LIKE 'CREATE PROCEDURE dbo.MergeSalesOrderDetail%'
IF @PlanHandle IS NOT NULL
BEGIN
DBCC FREEPROCCACHE(@PlanHandle);
END
GO
User 'dbo' does not have permission
to run DBCC freeproccache.
Это сообщение означает, что вы не можете даже совершить правильное действие и выполнить такой запрос:
DECLARE @PlanHandle VARBINARY(64)
SELECT @PlanHandle = deqs.plan_handle
FROM sys.dm_exec_query_stats AS deqs
CROSS APPLY sys.dm_exec_sql_text(deqs.sql_handle) AS dest
WHERE dest.text LIKE 'CREATE PROCEDURE dbo.MergeSalesOrderDetail%'
IF @PlanHandle IS NOT NULL
BEGIN
DBCC FREEPROCCACHE(@PlanHandle);
END
GO
Это небольшая проблема, свойственная всем имеющимся в моем распоряжении инструментам. Мне бы действительно хотелось извлекать планы из кэша по мере необходимости. Благодаря переходу на версию 12 у вас есть доступ к огромному количеству информации и функций управления. Естественно, некоторые из них далеко не безупречны во всех отношениях. Но по большей части у вас будет все необходимое для управления базой данных и объектами в ней. Модель платформы как услуги означает, что большинство стандартных элементов информации о сервере, обычно собираемых администраторами, просто не потребуются при работе с базой данных SQL Azure.