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

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

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

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

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


Функция Min - не работает, просто f1 - f2 на ура :(
...
Рейтинг: 0 / 0
Что быстрее будет работать? Select из БД или поиск по DataTable
    #32824055
Фотография Лиман Артём
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да, чего-то не работает, попробуй так(код правдо на васике)
Код: 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
Что быстрее будет работать? Select из БД или поиск по DataTable
    #32824098
Serg****
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лиман Артёмда, чего-то не работает, попробуй так(код правдо на васике)
Код: 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
8 сообщений из 8, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Что быстрее будет работать? Select из БД или поиск по DataTable
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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