Скажите, что я хочу сделать "Оптимизированный генератор запросов". В основном оптимизатор SQL-запросов, который намного лучше, чем тот, который может быть помещен в SQL-сервер, исходя из временных и пространственных ограничений Он будет принимать запрос и статистику БД в качестве входных данных и генерировать запрос SQL с учетом целевой системы, который быстро оптимизируется до почти идеального плана.
Какой объем SQL необходимо будет поддерживать? Существует ли подмножество SQL, достаточно гибкое, чтобы легко описывать большинство полезных запросов, но достаточно меньше, чем полный SQL, чтобы его стоило урезать? Также есть ли лучший способ описать запросы, если вам не нужно придерживаться "близко к машине"?
Я не имею в виду программу, через которую вы будете обрабатывать существующий SQL, а скорее инструмент для создания нового SQL. Фактически не нужно принимать SQL в качестве входных данных, если язык ввода может описывать требования запроса.
Полагаю, другой формой вопроса был бы вопрос: есть ли какие-то части SQL, которые предназначены только для производительности и никогда не улучшают читабельность / понятность?
Как указано кем-то, что для этого потребуется «тонна знаний по конкретному продукту», и что (например, вложенные подзапросы или что-то еще, какие индексы следует использовать, что-то в этом роде) является именно тем инструментом предназначен для инкапсуляции, так что пользователю не нужно изучать эти знания.
примечание: Меня не интересует генерация планов фактических запросов, так как это задача СУБД , и она все равно не может быть выполнена из SQL. Меня интересует система, которая может автоматизировать работу по созданию хорошего SQL для данной СУБД на основе ввода, который не нужно настраивать для этой СУБД.