![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
выборка
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 ©
Имея значек мастера и делая такие громкие заявления ( чушь. блоб поля обрабатываются иначе. любой размер будет представлен "ссылкой" в пару тройку байт), чем вводите разработчиков в заблуждение,
потрудитесь уж привести основания, а также СУБД, способы связи, настройки полей для которых актуально ваше заявление...
А не выкрикивайте, как двоечник с места )