Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];

Вниз

Оптимизация БД   Найти похожие ветки 

 
Алексей Петухов   (2004-03-02 07:16) [0]

Здравствуйте уважаемые мастера.
Сразу извините за длинный вопрос.
Используется БД PARADOX.
Состоит из нескольких таблиц.
Локально, TDataBase.Exclusive:=true;
1. Вопрос в том, как усорить обработку SQL запросов?
2. Какую БД лучше использовать в данном случае?
3. Поможет ли создание индексов и будет ли BDE эти индексы использовать?
4. Может перейти на INTERBASE?

Заранее благодарю за помощь.

В общем виде таблицы такие:
1. CREATE TABLE "tmp.dbf"
( ID integer,
 type_nak_id integer,
 mag_id integer,
 data date,
 pos_id integer,
 oplata numeric(10,2),
 sum_zak numeric(10,2),
 sum_real numeric(10,2))

2. CREATE TABLE "tmp1.dbf"
( ID integer,
 Name char(10))


Использую для работы TQuery запросы примерно такие:
select
t.id t_id, t.name t_name,
z.id, z.type_nak_id, z.data z_data, z.pos_id, z.oplata z_oplata, z.sum_zak z_sum_zak, z.sum_real z_sum_real,
p.id p_id, p.name p_name,
t.rank t_rank,
z.mag_id z_mag_id,
upper(p.name) up_p_name
from
"type_nak.dbf" t
right join
"nak_zag.dbf" z
on
z.type_nak_id=t.id
left join
"pos.dbf" p
on
p.id=z.pos_id
where z.mag_id=:mag_id
order by
up_p_name, z_data, t_rank


 
ЮЮ ©   (2004-03-02 08:35) [1]

запрос на выборку одной записи и так должен летать, только надо выбирать эту запись и "прикручивать"  к ней справочники, а не нооборот:

from
 "nak_zag.dbf" z
 LEFT JOIN "type_nak.dbf" t on z.type_nak_id=t.id


 
Алексей Петухов   (2004-03-02 09:22) [2]

То есть, извините, вот так?

from
"nak_zag.dbf" z
left join
"type_nak.dbf" t,
"pos.dbf" p
on
z.type_nak_id=t.id
z.pos_id=p.id


И такой подход действительно ускорит обработку запроса?


 
Johnmen ©   (2004-03-02 09:28) [3]

FROM ...
LEFT JOIN ...
LEFT JOIN ...


В данном конкретном случае не ускорит.


 
Desdechado ©   (2004-03-02 09:39) [4]

индексы по полям, по кот. происходит объединение, должны ускорить
СУБД на 2 таблицы можно любую


 
Алексей Петухов   (2004-03-02 09:51) [5]

Да нет.
Таблиц у меня 13 штук.
В одном запросе используется максимум до 6 таблиц.
Но ведь индексы замедлят и всавку записей.
А вообще как в данном случае индексы создать? Create Index?


 
Карелин Артем ©   (2004-03-02 09:57) [6]

DataBase DeskTop


 
ЮЮ ©   (2004-03-03 03:00) [7]

>Но ведь индексы замедлят и всавку записей.

Ну уж первичный ключ по ID просто необходим


 
Алексей Петухов   (2004-03-03 06:32) [8]


> Ну уж первичный ключ по ID просто необходим

А что это он таким необходимым стал?
Я, например, без него как-то обхожусь

> DataBase DeskTop

Спасибо за совет, конечно, но я таблички прграмно создаю, да и если таблицы переиндексировать понадобиться, мне пользователя ДБ Десктопоу обучать?


 
Anatoly Podgoretsky ©   (2004-01-23 13:20) [9]

Необязателен, но без него жить сложно, особенно в Парадоксе.


 
ЮЮ ©   (2004-03-04 05:24) [10]

>Я, например, без него как-то обхожусь

Вот так и обходишься, что поиск одной записи по ID, который у всех выполняется слёту, у тебя уже вызывакт проблемы :-)

CREATE TABLE "tmp1.dbf" (
 ID integer,
 Name char(10)),
 PRIMARY KEY(ID)
)


 
Карелин Артем ©   (2004-03-04 11:16) [11]

Тогда смотри IndexDefs и CreateIndex



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.034 c
4-1074605528
menart
2004-01-20 16:32
2004.04.04
Диалоговое окошко входа в домен!


3-1078402420
shinus
2004-03-04 15:13
2004.04.04
ADO MS Jet


3-1078328982
Yuri Btr
2004-03-03 18:49
2004.04.04
Перемещение записи


1-1079338277
alex732
2004-03-15 11:11
2004.04.04
Точка остановки


8-1070401089
konstantinov
2003-12-03 00:38
2004.04.04
Запись через WaveIn





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский