|
|
|
Оптимизация запросов.
|
|||
|---|---|---|---|
|
#18+
Bfinkказинак, Что ты еще не плаваешь по течению? ээээ апчем речь? то что я в в форуме оракла высказываюсь НЕ в благоговейном трепете в пользу оракловых фич? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2017, 12:45 |
|
||
|
Оптимизация запросов.
|
|||
|---|---|---|---|
|
#18+
ElicТы не мог бы определиться, у тебя приязнь ко мне, или ко всем не отягощённым лояльностью к кормящей конторе? тьфу на тебя за своим словесным поносом ты просто прячешь свою недалекость и раздутое эго приязнь к тебе могла бы возникнуть у меня при условии, что ты симпатишный, и что ты - ДЕВУШКА если ты этими качествами не обладаешь, то извиняй - ты в пролете ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2017, 12:46 |
|
||
|
Оптимизация запросов.
|
|||
|---|---|---|---|
|
#18+
казинакты симпатишный, и что ты - ДЕВУШКАТы не боишься выпячивать в форум то, что ты гормонозависимый молокосос? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2017, 12:49 |
|
||
|
Оптимизация запросов.
|
|||
|---|---|---|---|
|
#18+
казинакприязнь к тебе могла бы возникнуть у меня при условии, что ты симпатишный, и что ты - ДЕВУШКА А что важней, если не секрет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2017, 12:50 |
|
||
|
Оптимизация запросов.
|
|||
|---|---|---|---|
|
#18+
Вячеслав Любомудровказинакприязнь к тебе могла бы возникнуть у меня при условии, что ты симпатишный, и что ты - ДЕВУШКА А что важней, если не секрет? ну емае, Вячеслав, вы еще скажите что вам симпатишные девушки неинтересны.... (я не по елика, есличе) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2017, 12:57 |
|
||
|
Оптимизация запросов.
|
|||
|---|---|---|---|
|
#18+
казинакMakar4ik...Поясню, зачем этот зверь: Есть джавовская библиотека Hibernate. Она строит в мозгах объектную модель БД. Строит на основе слепка модели, которая хранится в 7-ми таблицах в БД. А скрипт должен проверить этот слепок на 30+ разных недомоганий, несоответствий, и кривых рук разработчиков. Итого, мне 30+ раз вычитать системные вьюшки приходится, часто с довольно сложными джоинами. Через скрипт, при предварительной вычитке в таблицу, самый тяжкий из запросов выполняется 2 секунды. Без этой вычитки и индексации (прям по вьюшкам) - минут 40 выходит... запросы к этим all_tables, all_views, ALL_CONS_COLUMNS, ALL_CONSTRAINTS и т.д., материализуй. И сделай рефреш раз в 5-10 мин. у нас помогло... зы Там, мало того, что данных немало, так и еще эти словарные вьюхи нехилые планы дают, с кучей путей разных типов и с афигенными стоимостями. И если к этим словарным вьюхам обращаются десятки и сотни юзеров в сек/мин, то бд вешается напрочь в общем, типичная проблема для веб приложения и ORM....Раз я уж отметился в этой теме (всех с Рождеством Христовым!), то парочку наблюдений для ТС (я цитирую не его, но, видимо казинак просто более подробно описал, куда надо смотреть, да и сам я с этим немного сталкивался) 1. Если уж действительно интересуют именно ALL_TABLES, ALL_что-то-еще и т.д., то я вижу следущие варианты: -- во-первых, в принципе отказаться от ALL_* и юзать DBA_*. Насколько я понял -- права у ТС соответствующие есть. Причина -- дополнительные (многие избыточные) проверки -- как предложили, можно материализовать их в отдельные таблички (насколько понимаю, простые MV здесь не сработают, поэтому, это велосипед) -- можно юзать with с кляузой /*+ materialize */ (это просто для набора решений) -- можно подсмотреть, из чего состоят требуемые вьюшки и составить свои над базовыми таблицами (убрав всякие лишние проверки, появившиеся после всяких DBVault и Editions), возможно будет достаточно родных DBA_INTERNAL_* вьюшек (с 11g?). Выглядит сложновато, но на самом деле достаточно просто (даже для 30 экземпляров). Следует отметить, что пересоздание ALL_OBJECTS и ALL_SYNONYMS из более старых версий в свое время было приведено как workaround от support при смене версии именно из-за усложнившихся проверок 2. По поводу возвращения датасета: Оно конечно можно вернуть или как REF_CURSOR, или VIEW, PIPELINED функция или даже заполненная временная таблица, но зачем? Я так понимаю, тебе нужен протокол [не]соответствия и, возможно, команды по привидению в порядок Т.е. либо сформировать скрипт, чтоб ты проглядел глазками и запустил на выполнение (возможно, поправив), либо они уже вообще были запущены в твоей процедурке. Для этого датасет как-то лишний ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2017, 17:54 |
|
||
|
Оптимизация запросов.
|
|||
|---|---|---|---|
|
#18+
Вячеслав Любомудровв принципе отказаться от ALL_* и юзать DBA_*. Насколько я понял -- права у ТС соответствующие есть. да прямо из таблиц брать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2017, 15:04 |
|
||
|
Оптимизация запросов.
|
|||
|---|---|---|---|
|
#18+
казинакMakar4ik...Поясню, зачем этот зверь: Есть джавовская библиотека Hibernate. Она строит в мозгах объектную модель БД. Строит на основе слепка модели, которая хранится в 7-ми таблицах в БД. А скрипт должен проверить этот слепок на 30+ разных недомоганий, несоответствий, и кривых рук разработчиков. Итого, мне 30+ раз вычитать системные вьюшки приходится, часто с довольно сложными джоинами. Через скрипт, при предварительной вычитке в таблицу, самый тяжкий из запросов выполняется 2 секунды. Без этой вычитки и индексации (прям по вьюшкам) - минут 40 выходит... запросы к этим all_tables, all_views, ALL_CONS_COLUMNS, ALL_CONSTRAINTS и т.д., материализуй. И сделай рефреш раз в 5-10 мин. у нас помогло... зы Там, мало того, что данных немало, так и еще эти словарные вьюхи нехилые планы дают, с кучей путей разных типов и с афигенными стоимостями. И если к этим словарным вьюхам обращаются десятки и сотни юзеров в сек/мин, то бд вешается напрочь в общем, типичная проблема для веб приложения и ORM....Нет. Запросы разовые. Раз в час/сутки/неделю. Считаем, что пару раз в сутки. Больше, по сути - не надо. Это алгоритм, который проверяет здоровье словарной системы по ХХ параметрам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2017, 00:43 |
|
||
|
Оптимизация запросов.
|
|||
|---|---|---|---|
|
#18+
казинакMakar4ikP.S. Запрос будет по сути неконкуррентным. Это админский функционал. Что уже легче. Заранее благодарен. а если неконкурентный, то пусть себе 40 мин выполняется жалко что ли...жалко. Админскими правами на DEV стенде обладает каждый разраб. 30 раз в месяц по 40 минут - это четверть зарплаты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2017, 00:45 |
|
||
|
Оптимизация запросов.
|
|||
|---|---|---|---|
|
#18+
17-77Makar4ik, считай все данные как есть в память и перепиши скрипт на языке программирования к базе будет 7 запросов (7 таблиц), в памяти все будет работать быстрееЗадача не наваять софт, а из любого софта вызвать метод в оракле, который смог бы... И за разумное время. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2017, 00:47 |
|
||
|
Оптимизация запросов.
|
|||
|---|---|---|---|
|
#18+
Вячеслав Любомудровказинакпропущено... запросы к этим all_tables, all_views, ALL_CONS_COLUMNS, ALL_CONSTRAINTS и т.д., материализуй. И сделай рефреш раз в 5-10 мин. у нас помогло... зы Там, мало того, что данных немало, так и еще эти словарные вьюхи нехилые планы дают, с кучей путей разных типов и с афигенными стоимостями. И если к этим словарным вьюхам обращаются десятки и сотни юзеров в сек/мин, то бд вешается напрочь в общем, типичная проблема для веб приложения и ORM....Раз я уж отметился в этой теме (всех с Рождеством Христовым!), то парочку наблюдений для ТС (я цитирую не его, но, видимо казинак просто более подробно описал, куда надо смотреть, да и сам я с этим немного сталкивался) 1. Если уж действительно интересуют именно ALL_TABLES, ALL_что-то-еще и т.д., то я вижу следущие варианты: -- во-первых, в принципе отказаться от ALL_* и юзать DBA_*. Насколько я понял -- права у ТС соответствующие есть. Причина -- дополнительные (многие избыточные) проверки -- как предложили, можно материализовать их в отдельные таблички (насколько понимаю, простые MV здесь не сработают, поэтому, это велосипед) -- можно юзать with с кляузой /*+ materialize */ (это просто для набора решений) -- можно подсмотреть, из чего состоят требуемые вьюшки и составить свои над базовыми таблицами (убрав всякие лишние проверки, появившиеся после всяких DBVault и Editions), возможно будет достаточно родных DBA_INTERNAL_* вьюшек (с 11g?). Выглядит сложновато, но на самом деле достаточно просто (даже для 30 экземпляров). Следует отметить, что пересоздание ALL_OBJECTS и ALL_SYNONYMS из более старых версий в свое время было приведено как workaround от support при смене версии именно из-за усложнившихся проверок 2. По поводу возвращения датасета: Оно конечно можно вернуть или как REF_CURSOR, или VIEW, PIPELINED функция или даже заполненная временная таблица, но зачем? Я так понимаю, тебе нужен протокол [не]соответствия и, возможно, команды по привидению в порядок Т.е. либо сформировать скрипт, чтоб ты проглядел глазками и запустил на выполнение (возможно, поправив), либо они уже вообще были запущены в твоей процедурке. Для этого датасет как-то лишнийСпасибо. Искренне. Буду перечитывать, и чесать лысину... ...Пока посоветовали на работе - просто сляпать пэкэдж, с созданием постоянных, разделённых по сессиям таблиц, и там крутить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2017, 00:50 |
|
||
|
Оптимизация запросов.
|
|||
|---|---|---|---|
|
#18+
эх... Не хватает временами M$$QL-ного сахарку синтаксического... Те же IDENTITY, user функции как default у полей, или те же #таблички ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2017, 00:58 |
|
||
|
Оптимизация запросов.
|
|||
|---|---|---|---|
|
#18+
АлексссВячеслав Любомудровв принципе отказаться от ALL_* и юзать DBA_*. Насколько я понял -- права у ТС соответствующие есть. да прямо из таблиц братьДа, вероятно и очевидно, что у ТС (я) есть. Но хотелось бы, чтобы и под другими логинами что-то шевелилось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2017, 01:05 |
|
||
|
Оптимизация запросов.
|
|||
|---|---|---|---|
|
#18+
Makar4ikэх... Не хватает временами M$$QL-ного сахарку синтаксического... Те же IDENTITY, user функции как default у полей, или те же #табличкиНу вот тебе identity и user функция как значение по умолчанию. Код: plsql 1. 2. 3. 4. 5. 6. А если речь шла про пользовательские функции - это тоже можно, но сначала обоснуй необходимость. А для замены # и ## табличек есть local/global temporary tables, но тебе же некогда читать теорию, надо говнокодить. Если когда-нибудь найдется время ознакомиться с Том Кайт - Oracle для профессионалов, то осознаешь всю нелепость своих вопросов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2017, 01:23 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39386631&tid=1886633]: |
0ms |
get settings: |
6ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
149ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 237ms |
| total: | 448ms |

| 0 / 0 |
