Я пытаюсь прочитать только первую строку из расширенной хранимой процедуры xp_readerrorlog
в сценарии PowerShell.Прочитайте первую строку из набора результатов хранимой процедуры
К сожалению, метод ExecuteReader()
считывает все записи, возвращаемые хранимой процедурой, а иногда это несколько миллионов строк или несколько минут.
Я попытался найти его и выяснил, что с помощью DAO можно считывать данные по мере их возврата SQL Server, но DAO устарел, и я не хочу идти по этому маршруту.
BeginExecuteReader()
, похоже, не помогает, так как нет никаких указаний, если какие-либо данные были возвращены еще до завершения исполнения, которое равно ExecuteReader()
. Есть ли другой способ получить только несколько первых строк/страниц при работе с большим набором записей?
Я понимаю, что я могу создать временную таблицу, сбросить данные в нее и SELECT TOP 1
, но это введет некоторые дополнительные операции ввода-вывода, и это не решение, которое я ищу.
Как насчет [архивация] (http://blogs.msdn.com/b/chrissk/archive/2011/01/05/how-to-archive-your-sql-errorlogs-into-a- table.aspx) ваш журнал ошибок и периодически его циклически? Тогда 'sp/xp_readerrorlog' должен быть более управляемым. –
Это один из способов обхода этой конкретной хранимой процедуры. Я мог бы использовать этот подход, если нет другого решения. Но было бы неплохо узнать, возможно ли то, что я попросил. – Sheva