Запросы, планы, оптимизация запросов, ...
Модераторы: kdv, CyberMax
-
kdv
- Forum Admin
- Сообщения: 6595
- Зарегистрирован: 25 окт 2004, 18:07
Сообщение
kdv » 26 янв 2006, 14:16
сначала
Если мое предположение неправильно, ткните носом, только не в langref.pdf.
а потом
Ты мне скажи, мог сразу подсказать:
смотри langref.pdf таблица такая-то и такая-то.
Если я непонятно вопрос задал, так бы и сказали, вопросы наводящие бы задали.
тебе и давали наводящие ответы.
А Вы господа, не только ПРОФИ и саппорта и ФБ, но и хамы приличные. Нестыдно Уважаемые? Я к Вам как настоящим ПРОФИ обратился, ну невнимательно langref читал, а вы.....
здесь не платный саппорт (и даже не бесплатный) - это просто форум. И здесь никто никому ничего не должен. Тебе сразу показали на ошибку, и вместо того чтобы попытаться ее исправить, ты затеял то, что мы тут видим.
-
hvlad
- Разработчик Firebird
- Сообщения: 1244
- Зарегистрирован: 21 мар 2005, 10:48
Сообщение
hvlad » 26 янв 2006, 14:38
GByte писал(а):А Вы господа, не только ПРОФИ и саппорта и ФБ, но и хамы приличные. Нестыдно Уважаемые? Я к Вам как настоящим ПРОФИ обратился, ну невнимательно langref читал, а вы.....
Всего Вам доброго!
Если ты считаешь, что обращение на Вы и вежливый тон есть признак отсутствия хамства или большой культуры, то вынужден тебя огорчить - это далеко не так. А вот игнорирование обязательной к прочтению литературы, тупой спор с заведомо более опытными и обвинение тех, кто тебе уже помог, в нежелании вытирать сопли - это таки да, хамство
GByte писал(а):ПС
на месте КДВ я бы сложил с себя полномочия Модератора или минимум на вопросы перестал отвечать.
А давай я приду к тебе домой, грязными руками полезу в холодильник и посоветую хозяину сложить с себя полномочия ?
-
GByte
- Сообщения: 29
- Зарегистрирован: 19 янв 2006, 11:31
Сообщение
GByte » 26 янв 2006, 14:40
KDV, на платный/бесплатный саппорт я и не надеялся - вопросы к Мэрэлин[у].
Про лэнгреф:
Могли бы и настоять, а я только сказал, что я его (лэнгреф) прочитал (насколько практика покажет).
Про наводящие ответы:
Почтение Мопасана, уже кому-нить помогло?
Надеюсь администрация форума сделает выводы.
Всего наилучшего.
-
kdv
- Forum Admin
- Сообщения: 6595
- Зарегистрирован: 25 окт 2004, 18:07
Сообщение
kdv » 26 янв 2006, 15:03
администрация форума - это я.
Как там с запросом - получилось, или нет?
-
GByte
- Сообщения: 29
- Зарегистрирован: 19 янв 2006, 11:31
Сообщение
GByte » 26 янв 2006, 15:08
Про админстрацию я в курсе.
С запросом пока нет - немогу понять схему звязи системных таблиц, перечитываю лэнгреф.
-
kdv
- Forum Admin
- Сообщения: 6595
- Зарегистрирован: 25 окт 2004, 18:07
Сообщение
kdv » 26 янв 2006, 16:06
давай еще раз:
в rdb$relation_fields хранятся столбцы таблицы и порядковый номер столбца в таблице.
в rdb$indices хранятся индексы для таблицы, каждый индекс имеет свой порядковый номер (относительно таблицы).
в rdb$index_segments хранятся проиндексированные столбцы. Каждый столбец имеет порядковый номер в индексе.
то есть: relation_fields объединяется с indices по rdb$relation_name, а indices и index_segments - по rdb$index_name. relation_fields с index_segments - по rdb$field_name. Все.
-
GByte
- Сообщения: 29
- Зарегистрирован: 19 янв 2006, 11:31
Сообщение
GByte » 27 янв 2006, 12:58
Вот вроде сделал.
Ошибкой было - пропустил поле RDB$INDEX_SEGMENTS.RDB$FIELD_NAME.
Код: Выделить всё
SELECT
I1.RDB$RELATION_NAME TABLE_NAME,
IS1.RDB$FIELD_NAME FIELD_NAME,
I2.rdb$relation_name TABLE_NAME2,
IS2.rdb$field_name FIELD_NAME2
FROM
RDB$INDICES I1,
RDB$INDEX_SEGMENTS IS1,
rdb$indices I2,
RDB$INDEX_SEGMENTS IS2
WHERE
(I1.RDB$FOREIGN_KEY <> '')
and
(I1.RDB$INDEX_NAME = IS1.RDB$INDEX_NAME)
and
(I2.rdb$index_name = I1.rdb$FOREIGN_KEY)
and
(IS2.RDB$INDEX_NAME = I1.rdb$FOREIGN_KEY)
;
Спасибо, КДВ, за понимание!
-
kdv
- Forum Admin
- Сообщения: 6595
- Зарегистрирован: 25 окт 2004, 18:07
Сообщение
kdv » 27 янв 2006, 13:29
Вроде правильно, если ты хотел найти что куда ссылается.
Если тебе нужны:
таблица, индекс и его столбцы, то
Код: Выделить всё
select
rf.rdb$relation_name TABLE_NAME,
i.rdb$index_name INDEX_NAME,
is1.rdb$field_position IDX_FIELD_NO,
rf.rdb$field_name FIELD_NAME,
rf.rdb$field_position TBL_FIELD_NO
from
rdb$relation_fields rf, rdb$indices i, rdb$index_segments is1
where
rf.rdb$relation_name = i.rdb$relation_name and
i.rdb$index_name = is1.rdb$index_name and
rf.rdb$field_name = is1.rdb$field_name and
rf.rdb$relation_name not starting with 'RDB$'
order by 1, 2, 3