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

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

Тормозит FireBird [D7, firebird]


Страницы:   1 2

Denkop ©   (2003-09-30 14:01:00) 

Юзаю firebird WI-V1.0.3.972, версия 3-х недельной давности.
Делаю примерно такой запрос:

SELECT * FROM MAINTABLE T1
LEFT JOIN ORG_GROUP T2 ON T1.ID_GROUP=T2.ID
LEFT JOIN REG_GROUP T3 ON T1.ID_REG=T3.ID
LEFT JOIN TOWN_GROUP T4 ON T1.ID_TOWN=T4.ID

Поля X.NAME, X.ID все проиндексированы (ID-первич,NAME-вторич);
Для доступа использую стандартные компоненты с вкладки InterBase (IBDataBase,IBTransaction,IBQuery).

Структура MAINTABLE (примерно 100000 записей):

CREATE TABLE MAINTABLE (
ID INTEGER NOT NULL,
ID_GROUP INTEGER,
NAME VARCHAR(150),
TEL VARCHAR(20),
FAX VARCHAR(20),
FIO VARCHAR(150),
EMAIL VARCHAR(240),
WEB VARCHAR(240),
ADDRESS VARCHAR(240),
ID_REG INTEGER,
ID_TOWN INTEGER,
ZIP VARCHAR(10)
);

остальные таблицы классификаторы (ID, NAME)

На машине Authlon 1400/256mb/40HDD Seagate 7200 Ata100 этот запрос выполняется около минуты!

В настройках FIB:
Database Cash: 2048
Map size: 50698

Как можно повысить быстродействие выборки?


Nikolay M.   (2003-09-30 14:08:00) [21]

Нужны обязательно JOIN-ы? Через WHERE не прокатит?
А если сделать лукапные поля на клиенте? А я так вообще иногда делаю так: загоняю маленькие справочники, отсортированные по ключу, в память и приделываю Calculated-поле, в котором делается поиск по ключу в этом массиве в памяти методом деления отрезка пополам. Получается более чем резво. Если памяти, конечно, много...


Vlad   (2003-09-30 14:08:00) [22]

А причем тут индексы, когда у тебя FullScan по таблице ?
Индексы тебе тут сильно не помогут. Время для 100000 записей нормальное.


Страницы:   1 2

Наверх

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