DataReader внутри DataReader - PullRequest
       7

DataReader внутри DataReader

2 голосов
/ 31 августа 2011

У меня есть DataReader ... Я использую результат DataReader в качестве параметра другого DataReader, который подключен к команде с типом хранимой процедуры. Пока это работает быстро, но я беспокоюсь о времени, когда моя база данных заполнена информацией. Как я могу ускорить процесс? Спасибо

Ответы [ 2 ]

4 голосов
/ 31 августа 2011

Скорее всего, ваш первоначальный запрос может присоединиться к результатам, сгенерированным sproc.

0 голосов
/ 31 августа 2011

По сути, у вас есть 2 обхода базы данных вместо одного. Это может быть проблемой производительности, если вы будете часто вызывать это и , результат будет маленьким и , вы уже оптимизировали как запрос, так и хранимую процедуру (поэтому округление накладные расходы на поездки становятся значительными по сравнению с фактической полезной работой).

Оцените и посмотрите, не является ли эта функциональность узким местом. Если да, вы можете попытаться «объединить» эти две операции на уровне SQL, чтобы они могли быть выполнены размером с сервер за один раз.

Я не уверен, связано ли это с вашим вопросом, но имейте в виду, что (в зависимости от вашего поставщика СУБД / ADO.NET) несколько активных считывателей в одном соединении могут поддерживаться или не поддерживаться. Вы закрываете первый DbDataReader перед открытием второго? Если нет, и вы случайно переключаетесь на другую СУБД, могут возникнуть проблемы. Если память мне подходит, Oracle (ODP.NET) и DB2 поддерживают несколько считывателей, а MS SQL Server и PostgreSQL (Npgsql) - нет.

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