|
|
|
На философию потянуло...
|
|||
|---|---|---|---|
|
#18+
Так и не понял можно ли обойти на мой взгляд глупое ограничение пр ивыполнении динамического запроса с использованием DBMS_SQL ограничение касается того что нельзя сделать бинд входного массива и бинд выходного массива тоесть нельзя хотеть в SQL select забиндидь массив и получить тоже массив массив можно получать только по строчкам УЖОС ПРОСТО а если у меня в результате получится 100к строчек ответа я что помереть от старости должен пока их в цикле загоню в массив Кстати если у кого есть решение данной прболемы буду признателен кинте плиз ссылочку popov_art@mail.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2006, 23:44 |
|
||
|
На философию потянуло...
|
|||
|---|---|---|---|
|
#18+
NightGhostтоесть нельзя хотеть в SQL select забиндидь массив и получить тоже массив Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2006, 00:24 |
|
||
|
На философию потянуло...
|
|||
|---|---|---|---|
|
#18+
О! Нашелся топик. Хочу от оракла индексы и явное управление превращением подзапроса в темповую таблицу в конструкции with, а так же разрешать в списке with неиспользуемые подзапросы: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Должно сконвертить q1 в темп, построить индекс и сделать SKIP_SCAN по нему. А еще темповые таблицы a-la MSSQL - тот же with, только повторно используемый. Код: plaintext 1. 2. 3. 4. Хотя это вызовет проблемы с компиляций, но, если, например, определять это структурой курсора в коде... Просто не всегда удобно в вычислительных задачах таскать за собой скрипты с кучей темповых таблиц, а если генерить их в рантайме, то все съезжает в DSQL из-за раскомпиляции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2006, 09:18 |
|
||
|
На философию потянуло...
|
|||
|---|---|---|---|
|
#18+
Явное превращение в темп Код: plaintext Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2006, 10:34 |
|
||
|
На философию потянуло...
|
|||
|---|---|---|---|
|
#18+
TimmЯвное превращение в темп Код: plaintext Код: plaintext Да, век живи-век учись... Нарыл описание ( претендующее на полноту ) хинтов оракла, буду пытаться разобраться, что это такое. http://www.adp-gmbh.ch/ora/sql/hints.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2006, 11:11 |
|
||
|
На философию потянуло...
|
|||
|---|---|---|---|
|
#18+
RA\/EN Да, век живи-век учись... Да.... мощная конструкция... Интересно, насколько она легальна ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2006, 11:28 |
|
||
|
На философию потянуло...
|
|||
|---|---|---|---|
|
#18+
TimmЯвное превращение в темп Код: plaintext Код: plaintext А каким образом данный хинт юзать? в запросах типа with lalala as... ? как проверить что данный хинт действительно пашеть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2006, 11:55 |
|
||
|
На философию потянуло...
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2006, 11:58 |
|
||
|
На философию потянуло...
|
|||
|---|---|---|---|
|
#18+
grexhide RA\/EN Да, век живи-век учись... Да.... мощная конструкция... Интересно, насколько она легальна ? Кайт говорит, что обходится rownum>0, но это не совсем то, что хинт - на примере Владимира не материализует. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2006, 12:01 |
|
||
|
На философию потянуло...
|
|||
|---|---|---|---|
|
#18+
RA\/EN grexhide RA\/EN Да, век живи-век учись... Да.... мощная конструкция... Интересно, насколько она легальна ? Кайт говорит, что обходится rownum>0, но это не совсем то, что хинт - на примере Владимира не материализует. Кайт пользуется для другого, а именно - для получения VIEW. Соответствующий хинт - /*+no_merge*/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2006, 12:34 |
|
||
|
На философию потянуло...
|
|||
|---|---|---|---|
|
#18+
Доменов немножко не хватает, чтобы один раз описать CHECK CONSTRAINT и потом просто использовать получившийся домен (BOOLEAN, PHONE_NUMBER, etc) везде, где надо. Еще не вижу причины, почему бы не разрешить делать строки любой длины. Иногда ну вот нужно чуть больше, чем можно - и уже приходится CLOB лепить, а ведь это совсем другое... Впрочем, это редко. Не хватает возможности получить перечень ошибок для DEFERRED CONSTRAINT. Не хватает возможности получить автоматом приблизительную оценку длительности/progress'а длинной операции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2006, 12:40 |
|
||
|
На философию потянуло...
|
|||
|---|---|---|---|
|
#18+
О ! Вспомнил. Возможность использования CLOB в динамическом SQL. Оффтоп. Внимание ! Название темы частично "заражено" . (Timm, по- моему это Вы - что за ebookи ? ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2006, 12:46 |
|
||
|
На философию потянуло...
|
|||
|---|---|---|---|
|
#18+
iamhereНе хватает возможности получить перечень ошибок для DEFERRED CONSTRAINT.??? Что имелось ввиду? iamhere Не хватает возможности получить автоматом приблизительную оценку длительности/progress'а длинной операции. Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2006, 12:47 |
|
||
|
На философию потянуло...
|
|||
|---|---|---|---|
|
#18+
iamhere Не хватает возможности получить автоматом приблизительную оценку длительности/progress'а длинной операции. V$SESSION_LONGOPS, dbms_application_info.set_session_longops в т.ч. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2006, 12:49 |
|
||
|
На философию потянуло...
|
|||
|---|---|---|---|
|
#18+
contr iamhereНе хватает возможности получить перечень ошибок для DEFERRED CONSTRAINT.??? Что имелось ввиду? Есть DEFERRED CONSTRAINT. Quantity > 0, например. Есть транзакция, которая разными способами меняет этот Quantity в разных строках. Делает COMMIT и вываливается, потому что Quantity получился где-то < 0, в т.ч. и из-за параллельных сессий. FOR UPDATE - дорого и в 99% случаев не нужно, т.к. обновляются разные записи или записи, где Quantity МНОГО. Поэтому делаем так, с DEFERRED. Но вот знать бы еще, в каких строках этот CONATRAINT (который во время COMMIT срабатывает) обломался... EXCEPTIONS INTO тут не прокатывает. contr iamhere Не хватает возможности получить автоматом приблизительную оценку длительности/progress'а длинной операции. Код: plaintext Не то. Это КУСОЧКИ длинной операции :) Я прекрасно понимаю, что невозможно предсказать это общее время, даже имея всю статистику и план - потому что от даннх зависит. Но все-таки не хватает :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2006, 12:54 |
|
||
|
На философию потянуло...
|
|||
|---|---|---|---|
|
#18+
iamhere Я прекрасно понимаю, что невозможно предсказать это общее время, даже имея всю статистику и план - потому что от даннх зависит. Но все-таки не хватает :) Ты хоть бы справочник почитал. на предмет V$SESSION_LONGOPS.SOFAR или тебе привести формулу "предсказания точного времени" ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2006, 12:58 |
|
||
|
На философию потянуло...
|
|||
|---|---|---|---|
|
#18+
iamhere contr iamhereНе хватает возможности получить перечень ошибок для DEFERRED CONSTRAINT.??? Что имелось ввиду? Есть DEFERRED CONSTRAINT. Quantity > 0, например. Есть транзакция, которая разными способами меняет этот Quantity в разных строках. Делает COMMIT и вываливается, потому что Quantity получился где-то < 0, в т.ч. и из-за параллельных сессий. FOR UPDATE - дорого и в 99% случаев не нужно, т.к. обновляются разные записи или записи, где Quantity МНОГО. Поэтому делаем так, с DEFERRED. Но вот знать бы еще, в каких строках этот CONATRAINT (который во время COMMIT срабатывает) обломался... EXCEPTIONS INTO тут не прокатывает. Хм. "Из-за параллельных транзакций" - очень сомнительно, ибо уже первый update заблокирует строку (или обломится). Если же строка обновляется отлько в самом-самом конце, то не нужны никакие deferred... ИМХО тут дело не в deferred, а в нецелевом его использовании ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2006, 13:03 |
|
||
|
На философию потянуло...
|
|||
|---|---|---|---|
|
#18+
contrКайт пользуется для другого, а именно - для получения VIEW. Соответствующий хинт - /*+no_merge*/Вот только не всегда сей хинт срабатывает, в отличие от того же ROWNUM... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2006, 13:38 |
|
||
|
На философию потянуло...
|
|||
|---|---|---|---|
|
#18+
dmidekО ! Вспомнил. Возможность использования CLOB в динамическом SQL. Оффтоп. Внимание ! Название темы частично "заражено" . (Timm, по- моему это Вы - что за ebookи ? ) Это все Опера :) Вот тема про ебуки (там и оракловые книги есть, правда сейчас ниче не доступно) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2006, 13:43 |
|
||
|
На философию потянуло...
|
|||
|---|---|---|---|
|
#18+
TimmЯвное превращение в темп Код: plaintext Код: plaintext Кстати. По моим наблюдениям temp table transformation появляется сразу же если subquery_factoring_clause используется более одного раза (имхо, это дурацкое решение, попахивает индусами ). Поэтому для "эмуляции" /*+ materialize*/ достаточно добавить union all select 1 from q1 where 1=0 или что то подобное. А вот с inline все сложнее... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2006, 15:05 |
|
||
|
На философию потянуло...
|
|||
|---|---|---|---|
|
#18+
Timm Кстати. По моим наблюдениям temp table transformation появляется сразу же если subquery_factoring_clause используется более одного раза (имхо, это дурацкое решение, попахивает индусами ). Поэтому для "эмуляции" /*+ materialize*/ достаточно добавить union all select 1 from q1 where 1=0 или что то подобное. А вот с inline все сложнее... И так сложнее, но, вроде, оптимизатор вполне адекватен. Это не дает темптабле: Код: plaintext 1. 2. 3. а это - дает Код: plaintext 1. 2. 3. Вполне логично. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2006, 16:28 |
|
||
|
На философию потянуло...
|
|||
|---|---|---|---|
|
#18+
с дьюалом нечестно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2006, 16:38 |
|
||
|
На философию потянуло...
|
|||
|---|---|---|---|
|
#18+
TimmЯвное превращение в темп Код: plaintext Код: plaintext Код: plaintext Всего ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2006, 16:43 |
|
||
|
На философию потянуло...
|
|||
|---|---|---|---|
|
#18+
АазНа oracle-l@freelists.org подсмотрел такое Код: plaintext Всего А примерчик реального использования (хотя-бы эффекта) этого хинта можешь подкинуть? А то навскидку не получается 10-ку убедить хотя-бы в вырубании картезиана, не говоря уж о включении через это хинт режима RULE. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2006, 17:01 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=33981720&tid=1886424]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
159ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
70ms |
get tp. blocked users: |
2ms |
| others: | 238ms |
| total: | 511ms |

| 0 / 0 |
