Каковы некоторые преимущества / недостатки использования SQLDataReader?


SqlDataReader-это более быстрый способ обработки хранимой процедуры. Каковы некоторые преимущества / недостатки использования SQLDataReader?

5 5

5 ответов:

Я предполагаю, что вы имеете в виду"вместо загрузки результатов в DataTable"?

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

Недостатки: вы находитесь в контроль над тем, как загружаются данные, что означает, что проще сделать ошибку, и есть больше работы, чтобы сделать.

Каков здесь ваш вариант использования? Есть ли у вас веские основания полагать, что накладные расходы при использовании обычной (или строго типизированной) таблицы данных значительно снижают производительность? Я бы только использовал SqlDataReader напрямую, если бы у меня была хорошая причина для этого.

Ключевым преимуществом, очевидно, является скорость-это основная причина, по которой вы выбрали SQLDataReader.

Один потенциальный недостаток, о котором мы еще не говорили, заключается в том, что SQLDataReader работает только вперед, поэтому вы можете просматривать записи только один раз подряд - это одна из вещей, которая позволяет ему быть настолько быстрым. Во многих случаях это нормально, но если вам нужно повторить запись несколько раз или добавить/отредактировать/удалить данные, вам нужно будет использовать один из вариантов.

Он также остается подключается до тех пор, пока вы не проработаете все записи и не закроете считыватель (конечно, вы можете закрыть его раньше, но тогда вы не сможете получить доступ ни к одной из оставшихся записей). Если вы собираетесь выполнять какую-либо длительную обработку записей по мере их перебора, вы можете обнаружить, что оказываете влияние на другие соединения с базой данных.

Это зависит от того, что вам нужно сделать. Если вы возвращаете страницу результатов из базы данных (скажем, 20 записей), было бы лучше использовать адаптер данных для заполнения набора данных и привязать его к чему-то в пользовательском интерфейсе.

Но если вам нужно обработать много записей, по 1 за раз, используйте SqlDataReader.

Преимущества: быстрее, меньше памяти.

Недостатки: должен оставаться на связи, должен помнить, чтобы закрыть считыватель.

Данные могут не быть окончательными, и вы не контролируете свои действия, поэтому молочник вниз по дороге всегда должен носить данные с собой, иначе они будут взломаны данными, и полицейский не будет нести никаких данных, потому что они думают, что неправильно хранить данные других людей и неправильно это делать. Есть девушка, которая живет в Шеффилде, и она любит выходить и играть в большинстве случаев, когда она находится в доме, поэтому я не люблю говорить с ней, потому что ее родители а других ее друзей забрали в сады мира-это место, где все любят петь и оставаться. обычно знаменитые знаменитости получают возможность зависать вокруг них, но всегда есть высшая безопасность, потому что мы не хотим, чтобы их обскакали. КК вижу у теперь мне нужно 2 пойти и охладиться в Вест-Энде мира!!!£ "$$$Сделанный из денег человек$$$ $