Ошибка времени ожидания при запросе сценария Powershell к базе данных SQL - истекло время ожидания выполнения.Период ожидания - PullRequest
0 голосов
/ 29 марта 2019

Я получаю сообщение о файле Powershell, который SQLing SQL DB.Запрос работал около 1,5 лет, и я предполагаю, что он начал работать по таймауту, потому что набор данных, который он извлекает как часть запроса, экспоненциально вырос за это время.Я получаю сообщение об ошибке:

Истекло время выполнения.Период ожидания истек до завершения операции, или сервер не отвечает.

Однако при добавлении $ SqlCmd.CommandTimeout = 0 в запрос, как показано ниже, время ожидания истекает после того же самогоколичество времени.Параметр удаленного запроса в SQL по умолчанию составляет 600 секунд.Казалось бы, что на уровне сети существует проблема / разрешение, которое не позволяет информации в этом запросе определять время ожидания.Я также добавил бесконечный тайм-аут в запрос SQL в случае, если была БД DEADLOCK, но это, похоже, не проблема.Когда я выполняю точно такой же запрос с меньшим количеством возвращаемых данных, он работает нормально.

Почему игнорируемая команда бесконечного времени ожидания игнорируется?

   `

$SqlConnection = New-Object System.Data.SqlClient.SqlConnection
    $SqlConnection.ConnectionString = "Server = $SQLServer; Database = $SQLDBName; Integrated Security = True"
    $SqlConnection.ConnectionString = "Server = $SQLServer; Database = $SQLDBName;User Id=$SQLUserName;Password=$SQLDBPWD"

    $SqlCmd = New-Object System.Data.SqlClient.SqlCommand

    $SqlCmd.Connection = $SqlConnection
    $SqlCmd.CommandTimeout = 0

    $SqlConnection.Open()

    if ($SqlConnection.State -eq 'Open')
{
$message = "SQL Connection established"
$message | out-file {filepath}:\{filepath}\{filename} -append
###SQL statements go here


$sql = "{large, complex SQL query here}"

$adapter = new-object system.data.sqlclient.sqldataadapter ($sql, $SqlConnection)

$adapter.Fill($table) 


$table |ConvertTo-CSV -delimiter "`t" -NoTypeInformation|  %{$_.Replace('"','')} | out-file {filepath}:\{filepath}\{filename}



$SqlConnection.Close();

`

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...