Главная страница
    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.177 c
3-1078488208
BJValentine
2004-03-05 15:03
2004.04.04
Глючок с ADO


14-1078499706
zzet
2004-03-05 18:15
2004.04.04
Стыдно над чайниками смеяться...(с)ИМХО или фразы на которые труд


1-1079434560
_sulent
2004-03-16 13:56
2004.04.04
Вопрос по директориям


14-1079092146
Awersom
2004-03-12 14:49
2004.04.04
Чат


14-1078843781
Dlorean
2004-03-09 17:49
2004.04.04
Полетела файловая система FAT32!





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский