Джонатан Льюис, Ядро Oracle
Mar. 20th, 2016 10:16 pmСлучайно обнаружил, что наконец-то перевели «Oracle Core» Джонатана Льюиса. По-русски книга называется «Ядро Oracle: внутреннее устройство для администраторов и разработчиков баз данных».
Всем ораклистам читать непременно, кто еще не.
no subject
Date: 2016-03-21 10:03 am (UTC)Настораживает, что под видом customer_id выводится bill_to_customer_id, а gl_date на самом деле относится к совсем другому кастомеру.
Я бы искал причину в том, что данные изменяются во время выполнения запроса. Запросто может поменяться bill_to_customer_id, может наверное поменяться и gl_date (наверняка же распределения меняются? я уж не помню ничего).
Как можно поисследовать... Если можно флешбеком дотянуться до состояния таблиц, которое было на момент начала запроса, то там и смотреть. Если нет, можно попробовать повесить триггеры, чтобы записывали изменения всех используемых в запросе полей во всех трех таблицах.
Как-то так.
no subject
Date: 2016-03-21 10:26 am (UTC)чего ????
почему другому ?
хотя я конечно не знаток модуля дебиторы
данные меняться не должны, это всё по закрытым уже периодам
no subject
Date: 2016-03-21 10:50 am (UTC)Каким запросом ты потом проверяешь (ничего, если на ты?), что «такой даты нет для данного customer_id»?
А насчет того, что данные не должны меняться... Я тоже так думал, пока однажды не понадобилось сделать хранилище. С тех пор я точно знаю: поменяться может все. И сам ОёБС временами творит чудеса, и разработчики пишут датафиксы и т. п.
no subject
Date: 2016-03-21 10:55 am (UTC)убираю group by
подставляю contract и customer_id
по одному contract не так и много, 4000 записей
даты видно все
максимальная из них в 2014 г
в то время как max(gl_date) основного запроса - 2015 г
no subject
Date: 2016-03-21 11:11 am (UTC)С :p_date_from и :p_date_to точно нет путаницы? Если эти условия убрать, все то же самое?
Еще вариант вытащить в src id-шники из всех таблиц. А в группировке оставить те id-шники, из которых получается максимальная дата (что-то типа max(src.id) keep (dense_rank last order by src.gl_date)). И посмотреть потом на эти конкретные строки глазами.
Ну в общем не верю я, что это Оракл виноват (: