Советы по выполнению в стиле Oracle - PullRequest
1 голос
/ 10 марта 2011

Когда вы пишете довольно сложный SQL для Oracle, рано или поздно вам придется применить нечетную подсказку о выполнении, потому что Oracle не может сам определить «лучший» план выполнения.

http://download.oracle.com/docs/cd/B19306_01/server.102/b14211/hintsref.htm

Теперь это, конечно, не стандарт SQL. Но все же, мне интересно, есть ли другие СУБД, которые поддерживают такие подсказки, и я действительно имею в виду подсказки, которые «встроены» в SQL? Являются ли они похожими, синтаксически (то есть также помещены между ключевым словом SELECT и первым выбранным COLUMN)? Знаете ли вы страницу общей документации, сравнивающую подсказки в различных СУБД?

Н.Б .: Меня больше всего интересуют следующие СУБД: Postgres, MySQL, HSQLDB, H2, Derby, SQLite, DB2, Sybase, SQL Server

Ответы [ 3 ]

2 голосов
/ 10 марта 2011

Я знаю, что в db2 планы сделаны фиксированными, а не как. В Oracle 11g есть и другие варианты помимо добавления подсказок к запросам. Это SQLProfiles и SQLPlan Baselines, оба очень мощные. Я только что закончил проект по настройке производительности, где мы не добавили ни единого намека на код, а наоборот.

1 голос
/ 10 марта 2011

Я бы также напомнил вам, что если вы проводите какое-то сравнение с другими платформами БД, то подсказки в Oracle не являются обязательными.То есть Oracle может свободно игнорировать вашу подсказку, если она того пожелает.

Подсказки могут быть полезны, но я считаю, что я редко их использую - по крайней мере, по сравнению с прошлым, когда я работал сстарые оптимизаторы в более ранних версиях Oracle.Тогда намеки были гораздо более важным элементом настройки производительности, чем сейчас.

1 голос
/ 10 марта 2011

Вы можете добавить Подсказки Oprimizer к любому запросу SQL Server

Предложение PLAN позволяет вам определить конкретный план для вашего запроса в Firebird.

AFAIK, ничего стандартного или близкого к нему, но в целом вы можете сделать это во многих RDBM, но не во всех.

...