← Все новости

Об одном различии работы оптимизатора Postgres и Oracle

При переносе большой системы разработанной под одну СУБД на другую неизбежно возникают различные "нюансы", то что эффективно работало в одной СУБД, уже не так эффективно (или совсем неэффективно) работает в другой. В частности SQL разработанный под Oracle при всей синтаксической схожести может работать совсем не так в PostgreSQL Однако, это не значит, что ничего нельзя сделать, зачастую, если переписать код, используя особенности "новой" СУБД вы можете получить ту же эффективность выполнения.Сегодня я хочу рассмотреть один частный случай, связанный с обработкой аналитических(оконных) функций оптимизаторами Postgres и Oracle.Итак на герой, рассмотрим на синтетическом примере (который довольно похож на реальный)создаём табличку t_rownum_stop c составным первичным ключом (obj_id - селективное, но не уникальное поле, key_1 и cat_id малоселективные поля) Читать далее