powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как получить Execution Plan MS-SQL
11 сообщений из 11, страница 1 из 1
Как получить Execution Plan MS-SQL
    #38209579
beg-in-er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть не хитрый код, который выдаёт план выполнения запроса.

Код: plsql
1.
2.
3.
SET  SHOWPLAN_XML  ON     go
SELECT * FROM TABLE_1     go 
SET  SHOWPLAN_XML  OFF


если этот код вызвать из приложения

Код: c#
1.
new SqlCommand("SET  SHOWPLAN_XML  ON go SELECT * FROM TABLE_1 go SET  SHOWPLAN_XML  OFF").ExecuteNonQuery();


, то возвращается ошибка
SET SHOWPLAN statements must be the only statements in the batch

вопрос собсна в том как заполучить такой план.
...
Рейтинг: 0 / 0
Как получить Execution Plan MS-SQL
    #38209622
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
beg-in-er,

GO вроде бы не относится к синтаксису T-SQL.

MSDNGO — это не инструкция Transact-SQL; это команда, распознаваемая программами sqlcmd и osql и редактором кода среды Среда SQL Server Management Studio.

Программы SQL Server интерпретируют команду GO как сигнал о том, что им следует отправить текущий пакет инструкций Transact-SQL экземпляру SQL Server

http://msdn.microsoft.com/ru-ru/library/ms188037(v=sql.110).aspx
...
Рейтинг: 0 / 0
Как получить Execution Plan MS-SQL
    #38209629
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выполните 3 команды последовательно)
...
Рейтинг: 0 / 0
Как получить Execution Plan MS-SQL
    #38209741
beg-in-er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LelouchВыполните 3 команды последовательно)
да чёта сразу не пошло, и завис. вопрос то примитивный.
Код: c#
1.
2.
3.
4.
           COM.CommandText =" seT  SHOWPLAN_XML on";
            COM.ExecuteNonQuery();
            COM.CommandText ="SELECT * FROM table";
            var r2 = COM.ExecuteScalar();
...
Рейтинг: 0 / 0
Как получить Execution Plan MS-SQL
    #38210269
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
beg-in-er

Даже если у тебя проходил бы пакет...
Непонятно, что ты хотел получить в результате используя .ExecuteNonQuery() ?
...
Рейтинг: 0 / 0
Как получить Execution Plan MS-SQL
    #38210292
beg-in-er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир СА,

да задача была что бы хотя бы заработало. а уж потом направить.
просто я не понимал, то ли я туплю, то ли этот план можно получать только в SQL Managment Studio.
...
Рейтинг: 0 / 0
Как получить Execution Plan MS-SQL
    #38210348
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
beg-in-erВладимир СА,

да задача была что бы хотя бы заработало. а уж потом направить.
просто я не понимал, то ли я туплю, то ли этот план можно получать только в SQL Managment Studio.Да, этот план, по моему, получать можно только в SQL Managment Studio.
Точнее спроси в форуме Microsoft SQL Server
...
Рейтинг: 0 / 0
Как получить Execution Plan MS-SQL
    #38210352
beg-in-er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир СА,

так получил уже. вот тут код , 4 строки 14127819
всё нормально пашет. прилетает xml страница. а уж дальше дело техники.
топик можно закрывать.
...
Рейтинг: 0 / 0
Как получить Execution Plan MS-SQL
    #38210370
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
beg-in-er
Да, самому стало интересно...
Точно, идет...
...
Рейтинг: 0 / 0
Как получить Execution Plan MS-SQL
    #38210453
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
beg-in-er,

А побочных эффетов от того, что "plan OFF" не сделано не наблюдается?
...
Рейтинг: 0 / 0
Как получить Execution Plan MS-SQL
    #38210524
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2beg-in-er,

А побочных эффетов от того, что "plan OFF" не сделано не наблюдается?Естественно, пока не переведешь в OFF все операторы типа SELECT, INSERT, UPDATE, DELETE будут выдавать планы...
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
            string connString = "Data Source=****;Initial Catalog=****;Password=***;User ID=***";
            using (SqlConnection con = new SqlConnection(connString))
            {
                con.Open();
                string sql = "SET SHOWPLAN_XML ON";
                SqlCommand cmd = new SqlCommand(sql, con);
                cmd.ExecuteNonQuery();
                cmd.CommandText = "SELECT * FROM [T_Z_Events] WHERE [EventId] >= 4130";
                var rez = cmd.ExecuteScalar(); // план
                cmd.CommandText = "SELECT * FROM [T_Z_Events] WHERE [EventId] >= 4216";
                var rez1 = cmd.ExecuteScalar(); // план
                cmd.CommandText = "SET SHOWPLAN_XML OFF";
                cmd.ExecuteNonQuery();
                cmd.CommandText = "SELECT COUNT(*) FROM [T_Z_Events] WHERE [EventId] >= 4216";
                var cnt = cmd.ExecuteScalar(); // число
                con.Close();
            }
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как получить Execution Plan MS-SQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]