powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Что быстрее?
9 сообщений из 9, страница 1 из 1
Что быстрее?
    #33960411
Махмуд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет.

Есть два куска кода, делают по-разному одно и то же. Какой из них будет работать быстрее и/или меньше нагрузит сервак?

(1)
SqlCommand command = new SqlCommand("select * from Users where UserID = " + UserID, new SqlConnection(SqlExec.GetConnectionString()));
command.Connection.Open();
SqlDataReader reader = command.ExecuteReader();
reader.Read();
if (reader.HasRows)
{
blablabla
}

(2)
UsersTableAdapters.SingleUserTableAdapter adapter = new UsersTableAdapters.SingleUserTableAdapter();
DataTable table = new DataTable();
table = adapter.GetUserDetails(UserID);
if (table.Rows.Count > 0)
{
blablabla
}--
Век живи - век учись, дураком помрешь
...
Рейтинг: 0 / 0
Что быстрее?
    #33960413
Фотография ЧеГевара
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
imho, first sample.
...
Рейтинг: 0 / 0
Что быстрее?
    #33960440
daner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А по-моему одно и тоже. Они в конце одну и туже команду используют, только таблица сама эту команду генерирует (ну на это, какое то время, конечно, уйдет, но это время сервера {ASP} а не сервера {SQL}). Кроме того, о производительности в этих случаях спорит без осмысленно. Лучше оптимизировать участки внутри циклов если комплексность алгоритма не получается уменьшит.
...
Рейтинг: 0 / 0
Что быстрее?
    #33960443
alig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Считается что запрос с параметрами работает быстрее чем динамический SQL. Поэтому для SQL сервера быстрее второй вариант. Но в нем данные копируются в DataTable, что нагрузит клиента. Самое лучшее переписать первый вариант чтобы он использовал параметры.
...
Рейтинг: 0 / 0
Что быстрее?
    #33960457
Фотография vbnet2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дык, эти два фрагмента кода совершенно разные вещи делают.
Если просто одиночное значение, в DataTable вообще никакого смысла нет вообще.
А если ты биндится к GridView дальше собрался, то в одиночных командах смысла нет никакого, без DataTable не обойдешься.
DataTable - это память.
А параметр UserID если вытащить в первом фрагменте наружу, то для SQL - это совершенно идентичные команды и сравнивать их по производителльности на уровне SQL бессмысленно.

Или ты очень хитрый и хочешь чтоб мы сравнили прирост скорости оптимизатора SQL от передачи ему параметра по сревнению с работой без параметра с уменьшением скорости на уровне ASP, вызванным выделением доп.памяти на DataTable?
...
Рейтинг: 0 / 0
Что быстрее?
    #33960979
Махмуд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
э-э-э... а эта твоя последняя фраза... Ты с кем щас разговаривал? :)

Я собрался биндиться к DetailsView, мне нужны данные по одному юзеру и в том, и в другом случае. Собссно я и так уже въехал, правда, путем долгих блужданий по сети, что вариант с запросом будет оптимальнее.
Только вот не могу никак понять, как мне сделать параметризованный запрос и прицепить его к ридеру. Просто интересно на будущее...--
Век живи - век учись, дураком помрешь
...
Рейтинг: 0 / 0
Что быстрее?
    #33961125
alig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если я правильно понял вопрос то так
SqlCommand command = new SqlCommand("select * from Users where UserID = @UserID");
command.Parameters.AddWithValue("@UserID", UserID);

И еще на счет динамического SQL. Если, допустим, ты получаешь UserID из QueryString представь что будет если какой нибудь шутник пришлет тебе UserID="1; delete from Users;"
...
Рейтинг: 0 / 0
Что быстрее?
    #33961394
Махмуд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хм...Во как... Блин, каждый нет-программист должен быть еще и хакером.
Насколько я понял, в динамическом запросе с параметрами такая штука не пройдет? Или пройдет?--
Век живи - век учись, дураком помрешь
...
Рейтинг: 0 / 0
Что быстрее?
    #33961538
BlackTigerAP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>>Насколько я понял, в динамическом запросе с параметрами такая штука не пройдет? Или пройдет?

Не пройдет. Никак. 
How can men die better than facing fearful odds,
For the ashes of their fathers and the temples of their gods?

| Мой Brainbench | BookReader 1.1 | Wallpaper Cycler |
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Что быстрее?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]