Лучший отвечающий
Скрипт которые делает Kill Process у выбранных баз в SQL 2005.

Вопрос
-
Добрый день.
Наверное проблема не нова и где то уже поднималась - укажите плиз.
Вообщем ситуация такая - есть 1С 7.7 и есть SQL Server 2005 Enterprise.
Очень часто происходит зависание баз 1С и при этом необходимо сбрасывать на SQL сервере зависшие сессии (sleeping).
В 2005 SQL я делаю это через Detach.
Так вот собственно вопрос - есть ли такой скрипт который сбрасывает сессии с базы которую я укажу?
Язык скрипта не имеет значения :).
fil4 октября 2010 г. 9:18
Ответы
-
Маленький совет, скрипт SQL лучше написать как хранимую процедуру.
А уж хранимую процедуру можно вызывать из PS без проблем.
Про SQL & PS:
Accessing SQL Server Data from PowerShell
#Вызов хранимой процедуры DecreaseInventory # Define input parameters $ProductID = Read-Host "Enter product ID" $Amount = Read-Host "Decrease quantity by" # Create SqlConnection object, define connection string, and open connection $con = New-Object System.Data.SqlClient.SqlConnection $con.ConnectionString = "Server=.; Database=AdventureWorks; Integrated Security=true" $con.Open() # Create SqlCommand object, define command text, and set the connection $cmd = New-Object System.Data.SqlClient.SqlCommand #Вот она родимая, хранимая процедура! $cmd.CommandText = "EXEC DecreaseInventory @ProductID, @Amount" $cmd.Connection = $con # Add parameters to pass values to the stored procedure $cmd.Parameters.AddWithValue("@ProductID", $ProductID) | Out-Null $cmd.Parameters.AddWithValue("@Amount", $Amount) | Out-Null # Run the stored procedure $RowsUpdated = $cmd.ExecuteNonQuery() Write-Host # Display the number of rows updated Write-Host Number of rows updated: $RowsUpdated Write-Host # Close the connection $con.Close()
MCSE, MCSA:Messaging (2000/2003) MCITP:EMA, MCTS: Exchange 2007- Помечено в качестве ответа Vasily GusevModerator 3 ноября 2010 г. 18:28
5 октября 2010 г. 2:53
Все ответы
-
Я думаю, что задача состоит из двух частей: 1. Написать SQL скрипт, который убивает зависшие сессии (об этом лучше спросить в разделе по SQL) 2. Написать скрипт на VBS или Posh, который подключится к SQL-серверу, например через ODBC, и запустит SQL-скрипт на выполнение.
Сазонов Илья http://www.itcommunity.ru/blogs/sie-wl/4 октября 2010 г. 11:55Модератор -
Маленький совет, скрипт SQL лучше написать как хранимую процедуру.
А уж хранимую процедуру можно вызывать из PS без проблем.
Про SQL & PS:
Accessing SQL Server Data from PowerShell
#Вызов хранимой процедуры DecreaseInventory # Define input parameters $ProductID = Read-Host "Enter product ID" $Amount = Read-Host "Decrease quantity by" # Create SqlConnection object, define connection string, and open connection $con = New-Object System.Data.SqlClient.SqlConnection $con.ConnectionString = "Server=.; Database=AdventureWorks; Integrated Security=true" $con.Open() # Create SqlCommand object, define command text, and set the connection $cmd = New-Object System.Data.SqlClient.SqlCommand #Вот она родимая, хранимая процедура! $cmd.CommandText = "EXEC DecreaseInventory @ProductID, @Amount" $cmd.Connection = $con # Add parameters to pass values to the stored procedure $cmd.Parameters.AddWithValue("@ProductID", $ProductID) | Out-Null $cmd.Parameters.AddWithValue("@Amount", $Amount) | Out-Null # Run the stored procedure $RowsUpdated = $cmd.ExecuteNonQuery() Write-Host # Display the number of rows updated Write-Host Number of rows updated: $RowsUpdated Write-Host # Close the connection $con.Close()
MCSE, MCSA:Messaging (2000/2003) MCITP:EMA, MCTS: Exchange 2007- Помечено в качестве ответа Vasily GusevModerator 3 ноября 2010 г. 18:28
5 октября 2010 г. 2:53 -
Сделай такой вот батник:
sqlcmd -S SQLServer\Instance -U SQLAdmin -P SQLAdminPassword -Q "KILL %1"
и передавай ему в качестве параметра Session ID
Andrew Mishechkin29 ноября 2010 г. 9:38