Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Вопрос быстодействия Sybase SQL

28K
31 октября 2007 года
Ярый
9 / / 23.08.2007
При проектировании БД возникла проблема. Опишу по порядку.

Дано:
БД с двумя таблицами А и В связи по ключу между ними нет. И в А и в В есть поле "зю" (ID номер). А является базой известных мне "зю", т.е. содержит "зю" и необходимые аттрибуты. В - набор всяких разных "зю" и параметров появления их в В. А содержит 3201 запись, В 56045 записей.:rolleyes:

Задача:
Нужно отобразить сводную таблицу в которой каждому В-"зю" бы поставен в соответствие А-"зю" с аттрибутами, если он конечно в А вообще существует. Делается это для того чтоб знать какая В"зю" есть в базе А, а какой нет и если есть, то какие аттрибуты из аА ей соответствуют.

Мое решение:
Пишу прогу в С++Builder, подсоединяюсь к БД через ADOQuery.
Создал VIEW следующего содержания:
 
Код:
CREATE VIEW SvodTab as
SELECT A.zy, A.atr1, A.atr2, A.atr3, B.param1, B.param2, B.param3
FROM A right outer join B
ON A.zy=B.zy

Посе чего обращаюсь просто
 
Код:
SELECT * FROM SvodTab.


Проблема:
Низкое быстородействие!!!
SELECT * FROM SvodTab выполняется примерно 2.5 минуты! Пробовал деать не через VIEW, а просто запросом - результат тотже.

Замечания:
1. Во время выпонения выборки загрузка ЦП на превышает 1-3%:confused: . С опративкой тоже.
2. Прбовал индексировать поля "зю" в А и В - время выпонения сократилось на 10 сек. И всё:mad: !
3. Во встоенном в Sybase SQL процессоре запрос выполняется за 1.5 минуты.

Предпоожения:
Может ADO и Sybase изначально хреново быстродействуют?:(
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог