Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Что быстрее будет работать? Select из БД или поиск по DataTable / 8 сообщений из 8, страница 1 из 1
10.12.2004, 17:17
    #32823887
Serg****
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что быстрее будет работать? Select из БД или поиск по DataTable
Что быстрее будет работать? Select из БД или поиск по DataTable
Но, есть один нюанс:
есть таблица, предположим с двумя полями (int)

Надо найти минимальную разность между этими 2 полями.
Уже есть DataTable - содержащий SELECT * FROM t1

Вопрос:
Что будет быстрее бежать по DataTable и отнимать
или
Выполнить новый запрос SELECT MIN minValue = (f1 - f2) FROM t1
...
Рейтинг: 0 / 0
10.12.2004, 17:24
    #32823904
Лиман Артём
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что быстрее будет работать? Select из БД или поиск по DataTable
Код: plaintext
1.
YourDataTable.Columns.Add("Calc_Min").Expression = "Min(f1-f2)"
...
Рейтинг: 0 / 0
10.12.2004, 17:35
    #32823938
Hibernate
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что быстрее будет работать? Select из БД или поиск по DataTable
Serg****Что быстрее будет работать? Select из БД или поиск по DataTable
Но, есть один нюанс:
есть таблица, предположим с двумя полями (int)

Надо найти минимальную разность между этими 2 полями.
Уже есть DataTable - содержащий SELECT * FROM t1

Вопрос:
Что будет быстрее бежать по DataTable и отнимать
или
Выполнить новый запрос SELECT MIN minValue = (f1 - f2) FROM t1
смотря какая БД. например в MSSQL можно добавить вычислимое поле и построить по нему индекс. будет однозначно быстрее, при большом количестве записей - на многие порядки быстрее.
да и просто мне кажется будет быстрее поскольку движок БД оптимизирован для такой работы, пусть какая она тривиальная.
...
Рейтинг: 0 / 0
10.12.2004, 17:42
    #32823962
Bigheadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что быстрее будет работать? Select из БД или поиск по DataTable
Зависит от многих факторов!
1) Размер таблицы
2) Наличие упоминавшегося индексированного вычисляемого поля.
3) Ширина канала к серверу СУБД.
4) Производительность сервера СУБД.
...
Рейтинг: 0 / 0
10.12.2004, 17:58
    #32824008
Serg****
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что быстрее будет работать? Select из БД или поиск по DataTable
Лиман Артём
Код: plaintext
1.
YourDataTable.Columns.Add("Calc_Min").Expression = "Min(f1-f2)"


A first chance exception of type 'System.Data.SyntaxErrorException' occurred in system.data.dll

Additional information: Expected token 10 ()), but actual token at the position 10 is token 13 (BinaryOp).
...
Рейтинг: 0 / 0
10.12.2004, 18:04
    #32824031
Serg****
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что быстрее будет работать? Select из БД или поиск по DataTable
Лиман Артём
Код: plaintext
1.
YourDataTable.Columns.Add("Calc_Min").Expression = "Min(f1-f2)"


Функция Min - не работает, просто f1 - f2 на ура :(
...
Рейтинг: 0 / 0
10.12.2004, 18:14
    #32824055
Лиман Артём
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что быстрее будет работать? Select из БД или поиск по DataTable
да, чего-то не работает, попробуй так(код правдо на васике)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
 Dim dt As New DataTable
        dt.Columns.Add("f1", GetType(Integer))
        dt.Columns.Add("f2", GetType(Integer))
        dt.Columns.Add("f3").Expression = "f1-f2"
        dt.Columns.Add("f4").Expression = "Max(f3)" 'по непонятным причинам именно Мах возвращает минимум

        dt.Rows.Add(New Object() { 2 ,  10 })
        dt.Rows.Add(New Object() { 4 ,  6 })
        dt.Rows.Add(New Object() { 5 ,  3 })
        dt.Rows.Add(New Object() { 7 ,  6 })
        MsgBox(dt.Rows( 3 )("f4")) 'выведет -8
...
Рейтинг: 0 / 0
10.12.2004, 18:33
    #32824098
Serg****
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что быстрее будет работать? Select из БД или поиск по DataTable
Лиман Артёмда, чего-то не работает, попробуй так(код правдо на васике)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
 Dim dt As New DataTable
        dt.Columns.Add("f1", GetType(Integer))
        dt.Columns.Add("f2", GetType(Integer))
        dt.Columns.Add("f3").Expression = "f1-f2"
        dt.Columns.Add("f4").Expression = "Max(f3)" 'по непонятным причинам именно Мах возвращает минимум

        dt.Rows.Add(New Object() { 2 ,  10 })
        dt.Rows.Add(New Object() { 4 ,  6 })
        dt.Rows.Add(New Object() { 5 ,  3 })
        dt.Rows.Add(New Object() { 7 ,  6 })
        MsgBox(dt.Rows( 3 )("f4")) 'выведет -8


Когда указываешь одну колонку, действительно работает, но вот фигня - хрен знает как работает что Min что Max, Min выдает меньше Мax . но не минимальный
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Что быстрее будет работать? Select из БД или поиск по DataTable / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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