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

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

Выборка из большой базы [D5, dBase, FoxPro]


Страницы:   1 2

Иванов Сергей ©   (2004-07-21 15:11:00) 

Есть табличка Фокспро7 почти 2 гига нужно выбрать из неё немного  данных.

BDE работает, но выборка занимает на бешеной машине 15 минут.
ADO попробовал таже фигня.
это были query
попробовал adotable - оно потащило всю базу в память и у меня все попадало...

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

С уважением Иванов Сергей.


Sandman25   (2004-07-21 16:12:00) [21]

С таким запросом индексы отдыхают :)
Нужно так:
...
WHERE
sclad_mlabel.grup = sclad_mdocm.grup AND
sclad_mlabel.nnum = sclad_mdocm.nnum AND
sclad_mdocm.numdoc=:NumDoc AND
sclad_mdocm.delete=0 AND
((sclad_mdocm.vid='2') AND
(sclad_mdocm.type='1')
OR
(sclad_mdocm.vid='2') AND
(sclad_mdocm.type='8')
)

Данных много? ORDER BY будет создавать временную таблицу для сортировки


bushmen   (2004-07-21 16:09:00) [22]

> FROM
sclad_mdocm sclad_mdocm,
sclad_mlabel sclad_mlabel


А это что такое?


Иванов Сергей   (2004-07-21 16:07:00) [23]

> это типа ответ: сам дурак:)

нет,:-) просто мне кажется дело не в конкретном тексте, а в технологии.

> Какие ? Вот где рыть надо...:)

Вот такой.

SELECT
 sclad_mdocm.delete,
 sclad_mdocm.numdoc,
 sclad_mdocm.nnum,
 sclad_mlabel.grup,
 sclad_mlabel.name,
 sclad_mdocm.kol,
 sclad_mdocm.cenaout,
 sclad_mdocm.sumout,
 sclad_mdocm.nds,
 sclad_mdocm.sum_nds
FROM
 sclad_mdocm sclad_mdocm,
 sclad_mlabel sclad_mlabel
WHERE
 sclad_mlabel.grup = sclad_mdocm.grup AND
 sclad_mlabel.nnum = sclad_mdocm.nnum AND
 ((sclad_mdocm.vid='2') AND
 (sclad_mdocm.type='1') AND
 (sclad_mdocm.numdoc=:NumDoc) AND
 (sclad_mdocm.delete=0) OR
 (sclad_mdocm.vid='2') AND
 (sclad_mdocm.type='8') AND
 (sclad_mdocm.numdoc=:NumDoc) AND
 (sclad_mdocm.delete=0))
ORDER BY
 sclad_mlabel.grup, sclad_mlabel.nnum;


Johnmen   (2004-07-21 16:01:00) [24]

Тем не менее
>это были query
Какие ? Вот где рыть надо...:)


Соловьев   (2004-07-21 16:01:00) [25]


> индексов там много. в принципе есть и такие по которым я
> бы поискал.

это типа ответ: сам дурак:)


Иванов Сергей   (2004-07-21 15:57:00) [26]

to Соловьев ©   (21.07.04 15:12) [1]

покажите условия отбора и индексы

индексов там много. в принципе есть и такие по которым я бы поискал.

Johnmen ©   (21.07.04 15:12) [2]

Какой критерий небольшого выбора ?

На самом деле это БЕСТ5, таблица со строками накладных
выборка документов. В самой системе выборка делается средствами фокспра, процедура целая. то есть ручками. без sql. А мне надо сделать тоже самое но из вне. если бы какая то технология позволяля осуществлять поиск по этим индексам это было бы идеально. Но что-то меня сомнения терзают.

С уважением Иванов Сергей.


Соловьев   (2004-07-21 15:12:00) [27]


>  неё немного  данных.


> там индексы есть,

покажите условия отбора и индексы


Johnmen   (2004-07-21 15:12:00) [28]

>нужно выбрать из неё немного  данных.

Какой критерий небольшого выбора ?


Страницы:   1 2

Наверх

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