cообщение компилятору или ... ??? PL-SQL

Baur
Дата: 04.11.2008 12:11:36
Я изучаю код запроса, там после селека стоит нечто вот такое
  Select
/*+ ordered
      use_nl(pl)
      use_nl(cp)
      use_nl(a1)
      use_nl(pl1)
      use_nl(cp1)
      use_nl(e1)
      use_nl(ae1)
      INDEX_ASC(PL  IPLANACCOUNT_NO)
      INDEX_ASC(CP  UK_CLIENTPERSONE)
      INDEX_ASC(A1  IACCOUNT_ACCOUNTNO)
      INDEX_ASC(PL1 IPLANACCOUNT_NO)
      INDEX_ASC(CP1 UK_CLIENTPERSONE)
      INDEX_ASC(E1  IENTRY_DOCNO)
      INDEX_ASC(AE1 IACCOUNT_ACCOUNTNO)
      */
decode(nvl(nvl(ae.isscode,nvl(p.isscode,nvl(v.isscode,ex.issficode))),/*sFiCode*/1), 1,0,1) …
Если убрать то запрос невероятно тормозит, если обратно поставить, то запрос ускориться 1000 кратно!
А что это - Внутри комента???
Сообщение компилятору???
Или индексы только так цепляется???


Объясните, пожалуйста!!!
Elic
Дата: 04.11.2008 12:16:40
dmidek
Дата: 04.11.2008 12:21:23
Baur

 
/*+ ordered
      use_nl(pl)
      use_nl(cp)
      use_nl(a1)
      use_nl(pl1)
      use_nl(cp1)
      use_nl(e1)
      use_nl(ae1)
      INDEX_ASC(PL  IPLANACCOUNT_NO)
      INDEX_ASC(CP  UK_CLIENTPERSONE)
      INDEX_ASC(A1  IACCOUNT_ACCOUNTNO)
      INDEX_ASC(PL1 IPLANACCOUNT_NO)
      INDEX_ASC(CP1 UK_CLIENTPERSONE)
      INDEX_ASC(E1  IENTRY_DOCNO)
      INDEX_ASC(AE1 IACCOUNT_ACCOUNTNO)
      */


Да уж, ребята не хотят ждать милостей от оптимизатора :-)
Baur
Дата: 04.11.2008 12:33:18
Ясно ,,, спасибо за ссылку!!! Когда есть что прочитать, попробую разобраться …
Elic, Еще раз спасибо!!!
Baur
Дата: 04.11.2008 12:36:58
Dmidek, я то знал про существования оптимизатора, но я думал как то все автоматом, не знал что ее вот так палками надо заставить работать :-)
dmidek
Дата: 04.11.2008 12:39:16
Baur
Dmidek, я то знал про существования оптимизатора, но я думал как то все автоматом, не знал что ее вот так палками надо заставить работать :-)

Baur, ну не то, чтобы автоматом , но в общем случае это выглядит дико
ИМХО именно что палками...
andreymx
Дата: 04.11.2008 13:15:09
Cyberplat
...опыт оптимизации предполагает написание запросов, которые будут выполняться быстро.
Например: на производительность влияет расстановка индексов, вот необходимо определить, где индекс будет необходим, а где будет мешать. Или вариант с join в каком случае какой join использовать. В общем то это не должно вызывать вопросов у программиста. Все занимаются оптимизацией запросов...
Возможно, здесь работают примерно так же
dmidek
Дата: 04.11.2008 13:17:28
andreymx
Cyberplat
...опыт оптимизации предполагает написание запросов, которые будут выполняться быстро.
Например: на производительность влияет расстановка индексов, вот необходимо определить, где индекс будет необходим, а где будет мешать. Или вариант с join в каком случае какой join использовать. В общем то это не должно вызывать вопросов у программиста. Все занимаются оптимизацией запросов...
Возможно, здесь работают примерно так же


andreymx, сослались бы и на свое правильное мнение
andreymx
Дата: 04.11.2008 13:23:10
dmidek
andreymx, сослались бы и на свое правильное мнение
Да это не совсем хорошо имхо - я считаю его правильным, кто-то - нет.
andreymx
Дата: 17.11.2008 09:07:28
кстати, там обсуждение продолжается, и очень активно