Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Что быстрее?
|
|||
|---|---|---|---|
|
#18+
Привет. Есть два куска кода, делают по-разному одно и то же. Какой из них будет работать быстрее и/или меньше нагрузит сервак? (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 }-- Век живи - век учись, дураком помрешь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2006, 21:33 |
|
||
|
Что быстрее?
|
|||
|---|---|---|---|
|
#18+
А по-моему одно и тоже. Они в конце одну и туже команду используют, только таблица сама эту команду генерирует (ну на это, какое то время, конечно, уйдет, но это время сервера {ASP} а не сервера {SQL}). Кроме того, о производительности в этих случаях спорит без осмысленно. Лучше оптимизировать участки внутри циклов если комплексность алгоритма не получается уменьшит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2006, 23:06 |
|
||
|
Что быстрее?
|
|||
|---|---|---|---|
|
#18+
Считается что запрос с параметрами работает быстрее чем динамический SQL. Поэтому для SQL сервера быстрее второй вариант. Но в нем данные копируются в DataTable, что нагрузит клиента. Самое лучшее переписать первый вариант чтобы он использовал параметры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2006, 23:18 |
|
||
|
Что быстрее?
|
|||
|---|---|---|---|
|
#18+
Дык, эти два фрагмента кода совершенно разные вещи делают. Если просто одиночное значение, в DataTable вообще никакого смысла нет вообще. А если ты биндится к GridView дальше собрался, то в одиночных командах смысла нет никакого, без DataTable не обойдешься. DataTable - это память. А параметр UserID если вытащить в первом фрагменте наружу, то для SQL - это совершенно идентичные команды и сравнивать их по производителльности на уровне SQL бессмысленно. Или ты очень хитрый и хочешь чтоб мы сравнили прирост скорости оптимизатора SQL от передачи ему параметра по сревнению с работой без параметра с уменьшением скорости на уровне ASP, вызванным выделением доп.памяти на DataTable? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2006, 00:12 |
|
||
|
Что быстрее?
|
|||
|---|---|---|---|
|
#18+
э-э-э... а эта твоя последняя фраза... Ты с кем щас разговаривал? :) Я собрался биндиться к DetailsView, мне нужны данные по одному юзеру и в том, и в другом случае. Собссно я и так уже въехал, правда, путем долгих блужданий по сети, что вариант с запросом будет оптимальнее. Только вот не могу никак понять, как мне сделать параметризованный запрос и прицепить его к ридеру. Просто интересно на будущее...-- Век живи - век учись, дураком помрешь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 00:19 |
|
||
|
Что быстрее?
|
|||
|---|---|---|---|
|
#18+
Если я правильно понял вопрос то так SqlCommand command = new SqlCommand("select * from Users where UserID = @UserID"); command.Parameters.AddWithValue("@UserID", UserID); И еще на счет динамического SQL. Если, допустим, ты получаешь UserID из QueryString представь что будет если какой нибудь шутник пришлет тебе UserID="1; delete from Users;" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 09:01 |
|
||
|
Что быстрее?
|
|||
|---|---|---|---|
|
#18+
Хм...Во как... Блин, каждый нет-программист должен быть еще и хакером. Насколько я понял, в динамическом запросе с параметрами такая штука не пройдет? Или пройдет?-- Век живи - век учись, дураком помрешь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 10:53 |
|
||
|
Что быстрее?
|
|||
|---|---|---|---|
|
#18+
>>Насколько я понял, в динамическом запросе с параметрами такая штука не пройдет? Или пройдет? Не пройдет. Никак. 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 | ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 11:28 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=33960979&tid=1389955]: |
0ms |
get settings: |
10ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
74ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
67ms |
get tp. blocked users: |
2ms |
| others: | 258ms |
| total: | 451ms |

| 0 / 0 |
