Я начинаю чувствовать себя старомодным, когда вижу все эти SQL-структуры, которые создают абстракцию базы данных и все эти ORM, хотя я далек от того, чтобы быть старым. Я понимаю необходимость в них, но их использование распространяется на места, в которых они обычно не принадлежат.PHP, Python, приложение Ruby с несколькими RDBMS
Я твердо убежден, что использование слоев абстракции базы данных для генерации SQL не является правильным способом для написания приложений баз данных, которые должны запускаться на нескольких механизмах баз данных, особенно когда вы бросаете действительно дорогие базы данных, такие как Oracle. И это более или менее глобально, оно не распространяется только на несколько языков.
Простой пример использования разбиения на страницы и вставки: при использовании Oracle можно использовать подсказки FIRST_ROWS и APPEND (при необходимости). Перейдя к передовым примерам, я мог бы упомянуть о том, чтобы вложить в базу данных множество хранимых процедур/пакетов, где это имеет смысл. И это разные для каждой СУБД.
Используя ограниченный набор функций, обычно доступных для многих РСУБД, нельзя использовать возможности, предлагаемые этими дорогостоящими и продвинутыми СУБД.
Итак, вернемся к сути вопроса: как вы разрабатываете приложения PHP, Python, Ruby и т. Д., Которые должны запускаться на нескольких ядрах баз данных?
Мне особенно интересно узнать, как вы отделяете/используете запросы, которые специально написаны для работы на единой РСУБД. Скажем, у вас есть инструкция, которая должна работать на 3 RDBMS: Oracle, DB2 и Sql Server, и для каждого из них вы пишете отдельный оператор SQL, чтобы использовать все функции, которые может предложить RDBMS. Как ты делаешь это?
Спустив это в сторону, что вы думаете об этом пути? Стоит ли это в вашем опыте? Зачем? Почему нет?
Не совсем. ODBC - это только «драйвер», который позволяет подключаться к любой СУБД. –