Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

выборка


Страницы:   1 2 3 4

sqler ©   (2012-12-19 12:16:00) 

для таблицы на 10 млн записей, что будет быстрее: три SELECT-запроса (SELECT..FROM..WHERE) или 1 SELECT запрос (SELECT * FROM table) и перебор полученного рекордсета?


stas   (2012-12-20 10:14:00) [41]

отсутствия компонента типа DBImage, и 1 записи в результате
котролов нет.
а по поводу 1-й записи не понял.


sniknik   (2012-12-20 07:55:00) [42]

stas ©   (19.12.12 18:33) [27]
> Inovet ©   (19.12.12 17:33) [22]
> Сделал. Загружает содержимое блобов.
опять бездоказательное/не проверяемое заявление в "фирменном" стиле? ну не обижайся тогда, на аналогичное же "выкрикивание с места"
- ты врешь!
конечно, при соблюдении описанных тобой же условий (отсутствия компонента типа DBImage, и 1 записи в результате, потому что даже так выкачается только то что отображается)


stas   (2012-12-19 21:08:00) [43]


> Равно как и миллионную выборку на клиента тянуть

Ну, если цель найти всего 3 записи, то конечно нет смысла тянуть 10 млн. на клиента.
Я изначально решил что он хочет за 3 раза вытянуть те же 10 млн.


Игорь Шевченко   (2012-12-19 20:59:00) [44]


> для таблицы на 10 млн записей, что будет быстрее


без разницы


Ega23   (2012-12-19 18:47:00) [45]


> К стати  в оракле, зависит от компонентов доступа на сколько
> я знаю.

Кстати, везде от от компонентов доступа зависит. Если что. Посему безапелляционно утверждать

> stas ©   (19.12.12 13:09) [6]
>
> 1. Блоб закачивается на клиента полностью


это не комильфо.
Равно как и миллионную выборку на клиента тянуть ,сервер для этого и предназначен, с его индексами, шахматами и поэтессами, чтобы данные фильтровать.


stas   (2012-12-19 18:33:00) [46]

Inovet ©   (19.12.12 17:33) [22]
Сделал. Загружает содержимое блобов.


stas   (2012-12-19 18:31:00) [47]

Ega23 ©   (19.12.12 17:33) [23]
Ну, так не зная СУБД зачем утверждать что каждый блоб по факту (СУБД была озвучена позже)?
Защитив себя от ненужной загрузки блоба, это не будет проблемой ни в IBSQL ни в MSSQL.
А грузить блобы в селекте и надеяться на то что будет закачана только ссылка с сервера, то проблемы могут возникнуть.
К стати  в оракле, зависит от компонентов доступа на сколько я знаю.


Jeer   (2012-12-19 18:23:00) [48]

P.S.
При условии, что ТС не закачивает их в массив стримов :)


Jeer   (2012-12-19 18:13:00) [49]

У ТС СУБД DBISAM - их две разновидности ( К/С и Ф/С ).
Но даже если Ф/С, то блобы на клиент вытягиваются тоже только по факту обращения к конкретному.


Ega23   (2012-12-19 17:33:00) [50]


> т.е. Если Напишем небольшое приложение.  
> возьмем D7, TADODataSet, подключим к MSSQL 2005, впишем
> запрос в DataSet, типа SELECT TOP 10 IDFIELD, BlobField
> FROM Table. Не подключая контролов. Запустим приложение.
>   Откроем в нем датасет. То мы не должны получить большой
> прирост используемой ОЗУ приложением?


А если мы возьмём IBSQL, то вот незадача, будем каждый блоб по факту получать.


Inovet   (2012-12-19 17:33:00) [51]

> [20] stas ©   (19.12.12 16:41)
> могу сделать только вышеописаный пример

А ты сделай.


Ega23   (2012-12-19 17:26:00) [52]


> 1. Блоб закачивается на клиента полностью


Да щаз.


stas   (2012-12-19 16:41:00) [53]

sniknik ©   (19.12.12 16:15) [18]

т.е. Если Напишем небольшое приложение.  
возьмем D7, TADODataSet, подключим к MSSQL 2005, впишем запрос в DataSet, типа SELECT TOP 10 IDFIELD, BlobField FROM Table. Не подключая контролов. Запустим приложение.  Откроем в нем датасет. То мы не должны получить большой прирост используемой ОЗУ приложением?

Я перечислил все то, на чем могу проверить, это вроде и не старье и много народу использует эту связку.

Inovet ©   (19.12.12 16:16) [19]
Ну, обычно если кого-то обвиняют, то приводят основания, а не наоборот.
Мне некогда искать могу сделать только вышеописаный пример.


Inovet   (2012-12-19 16:16:00) [54]

> [13] stas ©   (19.12.12 15:36)
> потрудитесь уж привести основания, а также СУБД, способы
> связи, настройки полей для которых актуально ваше заявление...

Может и ты приведёшь всё это для этого же условия актуальности?


sniknik   (2012-12-19 16:15:00) [55]

> настройки полей
какие такие настройки? у чего? само слово "blob" означает "бесформенное" т.е. практически нарицательное имя всех не структурных объектов в базе (Memo, Text, OLE, Image, Graphic, Table ... ets.), в общем тех с которыми трудно/иногда невозможно работать структурными методами ("впихнуть в сетку рекордсета" если такая есть конечно).

> потрудитесь уж привести основания
я их привожу, обычно, на такие же с основанием сообщения, а не голословные "ляпы".

> для которых актуально ваше заявление...
для всех... практически для всех. BDE с парадоксом надеюсь считать не будем, да и там сомнительно... ну вернее там механизм запроса другой, с сохранением в файл/возможностью сделать результат перманентным... там... ну чем черт не шутит, возможно, но тормошить "мертвяка" проверками уже лет 7..ххх (уже забл сколько)  как не охота.

> А не выкрикивайте, как двоечник с места )
не изображай из себя учителя... хочешь конкретики говори конкретно, а не как в [2] "обо всем".


Медвежонок Пятачок   (2012-12-19 16:14:00) [56]

нет, йошкин кот.
от тремя where выбирает три трети таблицы.
просто чтобы не скучно было.


stas   (2012-12-19 16:08:00) [57]

sqler   (19.12.12 12:16)
Или Вам надо найти всего 3 записи из 10 миллионов и вы спрашиваете как это лучше сделать забрать на клиента и искать там или на сервере  условием Where ?


Медвежонок Пятачок   (2012-12-19 16:03:00) [58]

т.е. 1 выборка 10 млн. записей быстрее чем 3 выборки такого же кол-ва записей в сумме, даже при наличии индексов и т.д.

Остается только придумать зачем автору три where если он в результате их получает всю таблицу.


stas   (2012-12-19 16:00:00) [59]

Ega23 ©   (19.12.12 13:01) [3]
> Время на передачу данных не тратится, да?

На перекачку тратится ровно как 10 миллионов закачать за 1 раз, так и за 3 раза.
А вот на обработку where тратится еще дополнительное время. т.е. 1 выборка 10 млн. записей быстрее чем 3 выборки такого же кол-ва записей в сумме, даже при наличии индексов и т.д.

А вот чтобы сказать что правильнее надо знать задачу.


stas   (2012-12-19 15:36:00) [60]

sniknik ©
Имея значек мастера и делая такие громкие заявления ( чушь. блоб поля обрабатываются иначе. любой размер будет представлен "ссылкой" в пару тройку байт), чем вводите разработчиков в заблуждение,
потрудитесь уж привести основания, а также СУБД, способы связи, настройки полей для которых актуально ваше заявление...

А не выкрикивайте, как двоечник с места )


Страницы:   1 2 3 4

Наверх

Титульная страница Поиск, карта сайта Написать письмо