|
|
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
11gR2 Почему иногда оптимизатор тупо берет готовый план (сгенерированный изначально для bind совсем другого диапазона), не желая строить заново. Если же при пустом sql-кэше(когда нет для запроса готового плана в sga) задать эти же значения, то строит нормальный план. Есть гистограммы, по которым однозначно можно видеть, что плохой план для таких значений bind не подходит. (очень неравномерное распределение). Причины и чем можно бороться (помимо baselines-ов) -? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2017, 08:53 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
туплю_, может для экономии сил и времени, не? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2017, 09:11 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
AFAIR, в 11g peeking выполнялся только при построении плана. А план строился только если не имелось готового. Как следствие, если первый вызов шел с неудачным значением bind - то остальные вызовы того же SQL работали неэффективно. Отсюда и легендарный способ борьбы с этим пагубным явлением: Код: plsql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2017, 09:15 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
DВАможет для экономии сил и времени, не? а как же adaptive cursor и проч. ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2017, 09:21 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
asc может не работать, если в запросе есть хинты. также может не работать, вроде если используется like и некот.другие операторы. Тогда что первое попалось, то и будет жевать. Один из вариантов лечения - запулить хинт BIND_AWARE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2017, 09:26 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
опс.DВАможет для экономии сил и времени, не? а как же adaptive cursor и проч. ?оно только с третьего выполнения начинает работать, да и то как мы знаем не всегда ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2017, 09:28 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
andrey_anonymousAFAIR, в 11g peeking выполнялся только при построении плана.afair, bind peeking появился в 10ке ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2017, 09:29 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
xtenderоно только с третьего выполнения начинает работать, да и то как мы знаем не всегда не всегда - это при каких ситуациях ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2017, 09:37 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
опс.DВАможет для экономии сил и времени, не? а как же adaptive cursor и проч. ? не сильно удачная попытка найти золотую серединку между необходимостью лишний раз парсить и риском подхватить не оптимальный план ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2017, 09:39 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
опс....также может не работать, вроде если используется like и некот.другие операторы. т.е. если используется like, то единственный выход - искать один усредненный план, относительно подходящий для всех ситуаций и фиксить его через baselines ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2017, 09:46 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
xtenderandrey_anonymousAFAIR, в 11g peeking выполнялся только при построении плана.afair, bind peeking появился в 10ке 700067 Oracle9i Database Performance Tuning Guide and Reference Release 2 (9.2) Peeking of User-Defined Bind Variables ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2017, 10:32 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
Elic, что вы скажете по самой этой ситуации - как вы поступаете ? Получается, что нужны два разных плана, но adaptive не срабатывает, как понимаю из-за использования like ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2017, 10:42 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
туплю_Elic, что вы скажете по самой этой ситуации - как вы поступаете ?Не парюсь. В adhoc запросах 100%-го счастья всё равно не бывает. А штатные запросы просто не должны зависеть от такой фигни. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2017, 10:46 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
туплю_, к сожалению, в большинстве случаев это означает, что разработчики неправильно понимают советы по использованию биндов. Очень распространена ошибка, когда делают запросы типа: select * from tab where type=:type ..., при том что заранее знают, что значений TYPE очень ограниченное количество и по ним будет большой перекос. В таких случаях просто вместо бинда надо использовал литерал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2017, 11:41 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
xtenderВ таких случаях просто вместо бинда надо использовал литералЛитералы - несопровождаемое зло. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2017, 11:51 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
ElicЛитералы - несопровождаемое зло.бред. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2017, 11:58 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
xtenderElicЛитералы - несопровождаемое зло.бред.Взаимно. Как и антогонизм "разработчик vs админ". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2017, 12:14 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
Как и антогонизм "разработчик vs админ". Вот и что делать админу в данной ситуации, как принудительно заставить adaptive к конкретным запросам цеплять? ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2017, 12:26 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
туплю_, подобрать и закрепить компромисный план, пригодный для любого диапазона. ну или ждать окончательной эволюции оптимайзера в самообучающийся искусственный интеллект ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2017, 12:31 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
xtenderElicЛитералы - несопровождаемое зло.бред. Присоединюсь. Пришлось даже написать код по замене параметров на их значения перед выполнением ( отчеты ) . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 10:34 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
fortnetxtenderпропущено... бред.Присоединюсь.И тем не менее, у меня разработчик будет получать пенделей за такое в PL/SQL : Код: plsql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 11:40 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
Виталий, а за такое? Код: plsql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 12:41 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
envВиталий, а за такое? Код: plsql 1. Код: plsql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 12:44 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
env Код: plsql 1. + AmKad Код: plsql 1. - ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 12:50 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
Elic, pkg_const.ACC_TYPE_VIP функция или константа? и если константа как тестировать сложный запрос в котором штук 50 этих констант и где то в запросе есть ошибка? каждый раз руками сидеть заменять константы на литералы прежде чем приступить к тестированию? xtender, + константы на моей памяти в проекте редко меняются. хотя может и есть извращенцы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 13:20 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
Vintpkg_const.ACC_TYPE_VIP функция или константа?Название пакета как бы намекает. Vintкак тестировать сложный запрос в котором штук 50 этих констант и где то в запросе есть ошибка? каждый раз руками сидеть заменять константы на литералы прежде чем приступить к тестированию? Код: plsql 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 13:47 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
Коллеги, не надо биться ради очередного ROT. Не существует плохих инструментов, существует неквалифицированное применение. Литералов тоже касается. В Ad-Hoc - они вполне уместны. В продуктивном коде - тоже уместны иногда, но гораздо реже - это вопрос code reveiw и мотивировки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 13:51 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
andrey_anonymousКоллеги, не надо биться ради очередного ROT. Не существует плохих инструментов, существует неквалифицированное применение. Литералов тоже касается. В Ad-Hoc - они вполне уместны. В продуктивном коде - тоже уместны иногда, но гораздо реже - это вопрос code reveiw и мотивировки. Это вопрос производительности выполнения запроса, не больше и не меньше. Все остальные предпочтения опциональны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 14:30 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
fortnetandrey_anonymousКоллеги, не надо биться ради очередного ROT. Не существует плохих инструментов, существует неквалифицированное применение. Литералов тоже касается. В Ad-Hoc - они вполне уместны. В продуктивном коде - тоже уместны иногда, но гораздо реже - это вопрос code reveiw и мотивировки. Это вопрос производительности выполнения запроса, не больше и не меньше. Все остальные предпочтения опциональны.Выбор, конечно, есть всегда, но бывают случаи когда либо используем красивые именованные константы и жирные хинты для сложных запросов либо прибиваем план прямо в библиотечном кеше либо "несопровождаемое литеральное зло" Первые два пути просто образец сопровождаемости. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 14:50 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
dbms_photoshopлибо используем красивые именованные константы и жирные хинты для сложных запросовНу конечно, только "и". Об чём тут говорить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 15:14 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
Elicdbms_photoshopлибо используем красивые именованные константы и жирные хинты для сложных запросовНу конечно, только "и". Об чём тут говорить.Написано же dbms_photoshopбывают случаи когдаИли не приходит на ум ни одного случая? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 15:25 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
Elicfortnetпропущено... Присоединюсь.И тем не менее, у меня разработчик будет получать пенделей за такое в PL/SQL : Код: plsql 1. Не думал что когда нибудь это скажу: ++++ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 15:30 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
dbms_photoshopИли не приходит на ум ни одного случая?Т.е. исключение? - Которое подтверждает правило. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 15:32 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
Если значение константы никогда не меняется, то зачем она нужна? А если значение константы меняется, то какая же это константа? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 15:34 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
AmKad, Чтобы написать числа Пи, e, постоянную Планка, число Авогадро и прочие "константы" с точностью до ограничения типа данных один раз, а не заставлять разработчиков помнить его до нужного знака, например. Предупреждая твой вопрос, нет, не приходилось использовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 15:38 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
Самая жесть это запросы с кучей условий типа (:a is null or A=:a) and (:b is null or B=:b) and (:c is null or C=:c) and... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 15:40 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
И вообще, пусть запрос хоть идеально сопровождаемый, но если он не выполняется за требуемое время, то в топку его... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 15:41 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
xtender, Согласен. Пусть пользователь вообще не получает никаких данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 15:43 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
Чего я только не видел: :yes :no :zero :sysdate :maxNNN(где NNN - это захардкоденные максимальные значения притворяющиеся бесконечными, типа date'9999-12-31') ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 15:49 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
AmKadxtender, Согласен. Пусть пользователь вообще не получает никаких данных.написать быстрый не судьба? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 15:50 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
xtenderИ вообще, пусть запрос хоть идеально сопровождаемый, но если он не выполняется за требуемое время, то в топку его...Всё так плохо, что любой bind укладывает сервак на лопатки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 15:51 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
xtenderСамая жесть это запросы с кучей условий типа (:a is null or A=:a) and (:b is null or B=:b) and (:c is null or C=:c) and... и следом xtenderИ вообще, пусть запрос хоть идеально сопровождаемый, но если он не выполняется за требуемое время, то в топку его... А разве bind в ряде случаев не повышает производительность? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 15:53 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
Elic, в моей практике было множество случаев, когда такую "сопровождаемую" дребедень ускорял с 4 часов до 1-2 минут легкой модификацией в динамику где часть важнейших биндов клеилась литералами, остальное оставалось биндами ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 15:57 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
xtenderнаписать быстрый не судьба?Зависит от некоторых факторов, например, что такое "быстрый" и "требуемое время". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 15:57 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
XMLer, что за идиотский вопрос? прочитай мои ответы и подумай к чему ты его задал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 15:59 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
AmKad, То есть ты ее догадываешься, что это зависит от задачи? Тебе нравится стоять в очередях? тебе приятнее чтобы перевод со счета на счет занимал милисекундв или дни? а гуглопоиск или загрузка сайта? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 16:05 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
xtenderв моей практике было множество случаев, когда такую "сопровождаемую" дребедень ускорял с 4 часов до 1-2 минут легкой модификацией в динамику где часть важнейших биндов клеилась литералами, остальное оставалось биндамиТак может архитектор виноват? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 16:05 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
xtenderв моей практике было множество случаев, когда такую "сопровождаемую" дребедень ускорял с 4 часов до 1-2 минут легкой модификацией в динамику где часть важнейших биндов клеилась литералами, остальное оставалось биндами А можно пример в студию? Желательно такой пример, который бы не провоцировал назвать архитектора БД чудаком, пытающимся поженить ужа с ежом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 16:07 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
xtenderзависит отЕдинственный правильный посыл. xtenderТебе нравится стоять в очередях? тебе приятнее чтобы перевод со счета на счет занимал милисекундв или дни? а гуглопоиск или загрузка сайта?И сколько OLTP-запросов ты полечил "с 4 часов до 1-2 минут"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 16:08 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
Elicxtenderв моей практике было множество случаев, когда такую "сопровождаемую" дребедень ускорял с 4 часов до 1-2 минут легкой модификацией в динамику где часть важнейших биндов клеилась литералами, остальное оставалось биндамиТак может архитектор виноват?покажи сопровождаемый код для or-ов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 16:14 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
xtenderXMLer, что за идиотский вопрос? прочитай мои ответы и подумай к чему ты его задал Прочитал. Ты про OLTP слыхал? Это такие базы которые выполняют много-много запросов в секунду, поэтому на них тебе придется читать столь нелюбимые тобой запросы с множеством bindов в where кляузе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 16:14 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
XMLer, просто покажи код на своей базе... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 16:15 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
Elic, Ты всерьез считаешь ,что твой кол идеально сопровождаемый и быстрейший? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 16:17 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
ElicИ сколько OLTP-запросов ты полечил "с 4 часов до 1-2 минут"?и что тебе даст количество? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 16:18 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
xtenderТо есть ты ее догадываешься, что это зависит от задачи?Ну так ведь не только от задачи. Если вдруг понадобилось выдать отчет, показывающий, сколько клиентов купили айфон, а потом в течение полугода apple watch всю историю работы розничной сети, то кто-то и два часа подождать может, а кому-то и пять минут может показаться "долго". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 16:18 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
xtenderXMLer, просто покажи код на своей базе... Ну вот, сначала рассказывал про чудеса а после слился, переведя стрелки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 16:21 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
xtenderElicИ сколько OLTP-запросов ты полечил "с 4 часов до 1-2 минут"?и что тебе даст количество? И еще раз слился ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 16:22 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
xtenderТы всерьез считаешьElicxtenderзависит отЕдинственный правильный посыл. xtenderбыстрейший? Где я так посчитал? xtenderElicИ сколько OLTP-запросов ты полечил "с 4 часов до 1-2 минут"?и что тебе даст количество?Это был скорее риторический вопрос. Потому что подразумевающийся ответ - 0. Так как не бывает OLTP-запросов в 4 часа, точно так же, как никому не нужны OLTP-запросы в 1 минуту. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 16:27 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
AmKadxtenderТо есть ты ее догадываешься, что это зависит от задачи?Ну так ведь не только от задачи. Если вдруг понадобилось выдать отчет, показывающий, сколько клиентов купили айфон, а потом в течение полугода apple watch всю историю работы розничной сети, то кто-то и два часа подождать может, а кому-то и пять минут может показаться "долго".вот ты странный... сам показываешь, что зависит от задачи, а от меня ждешь конкретной цифры с точностью до мс? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 16:28 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
Elicdbms_photoshopИли не приходит на ум ни одного случая?Т.е. исключение? - Которое подтверждает правило.Переходя к конкретике. Допустим есть дизайн Код: plsql 1. 2. 3. 4. 5. 6. 7. При этом для активных записей в deleted указывается date '9999-12-31' Альтернативным дизайном может быть nullable deleted. Для обоих есть плюсы и минусы и даже где-то у Льюиса была заметка, что он склоняется к nullable. Отдельно можно разводить срач по поводу наличия гистограммы по deleted. Можно приводить иные примеры сильно скошенных распределений, но остановимся на этом. То есть, используется not null поле deleted, соответсвенно фильтр по активным записям выглядит deleted = date '9999-12-31'. Активных записей 99.999%. 95+% запросов работают с именоваными константами (но мы то понимаем, что этот процент зависит не только от самого запроса, а еще от того какой бинд первым пикнулся). И вот тут возникает вопрос либо мы пишем что-то типа Код: plaintext Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 16:29 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
ElicЭто был скорее риторический вопрос. Потому что подразумевающийся ответ - 0. Так как не бывает OLTP-запросов в 4 часа, точно так же, как никому не нужны OLTP-запросы в 1 минуту.так я и не ограничивал себя до OLTP в конкретно этой фразе, но неужели ты думаешь что я мало ускорил OLTP запросов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 16:29 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
XMLerxtenderXMLer, что за идиотский вопрос? прочитай мои ответы и подумай к чему ты его задал Прочитал. Ты про OLTP слыхал? Это такие базы которые выполняют много-много запросов в секунду, поэтому на них тебе придется читать столь нелюбимые тобой запросы с множеством bindов в where кляузето есть про skewed data ты так и не осилил? иди поучись-почитай что-нибудь, поспрашивай у старших товарищей... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 16:30 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
xtenderот меня ждешь конкретной цифры с точностью до мс?Нет, я хочу сказать, в оценках "быстро" и "долго" есть еще и субъективная составляющая. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 16:31 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
AmKadxtenderот меня ждешь конкретной цифры с точностью до мс?Нет, я хочу сказать, в оценках "быстро" и "долго" есть еще и субъективная составляющая.omg... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 16:35 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
xtender, Я не сомневаюсь в твоем громадном опыте, но попробуй перечитать это с точки зрения разработчика OLTP ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 16:35 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
Еще очень увлекательно когда проект работает годами, все дружно используют именованые константы, есть тонны кода и допустим такой примитивный запросик Код: plsql 1. 2. 3. 4. Со временем появляется функция Код: plsql 1. 2. 3. 4. Очевидно они порождают одинаковые курсоры типа Код: plaintext Потом так вышло, что выполнился разбор из get_by_date и этот план используется в get_active. Упс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 16:37 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
XMLer, тебе пока в эту тему вообще рано лезть. Вот когда поймешь о чем и что конкретно я говорю, тогда посмотрим... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 16:37 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
xtenderно неужели ты думаешь что я мало ускорил OLTP запросов?Литералингом? Т.е. в данном случае - засиралингом SGA? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 16:38 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
XMLer, Прочти еще раз внимательнее о чем пишут xtender и photoshop. Ты не в теме спора. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 16:41 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
dbms_photoshopу Льюиса была заметка, что он склоняется к nullable.А я не склоняюсь, а просто всегда неизвестность обозначаю предназначенной для этого сущностью - null-ом. Соответственно, пример неудачный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 16:43 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
Elicзасиралингом SGA?а ты уверен, что готов об этом говорить? например, о количестве чайлдов порождаемых биндами сравнительно с 2-3 разными запросами по одному чайлду? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 16:45 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
Elicdbms_photoshopу Льюиса была заметка, что он склоняется к nullable.А я не склоняюсь, а просто всегда неизвестность обозначаю предназначенной для этого сущностью - null-ом. Соответственно, пример неудачный.Была попытка написать наиболее тривиальный пример с минимумом вводных. Остальные яркие примеры сильно скошенных требуют дополнительной специфики, но как-то мало желания писать страницу текста, чтоб потом человек с черно-белым мышлением сказал, что "этого не может быть ибо не может быть никогда". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 16:50 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
Elic... Код: plsql 1. 2. 3. 4. Представь что есть запрос хотя бы вот такой структуры: Код: plsql 1. 2. 3. 4. 5. только строк на 500. вполне реальный случай из вполне олтп системы. При твоем подходе сколько бы потребовалось раз писать open :c for …; для каждой части и переписывать запрос я даже боюсь представить. Ну или объясни, пожалуйста, как в таком запросе выделить часть запроса и быстро посмотреть результат. xtender, "покажи сопровождаемый код для or-ов" - хехе, тебе привет и спасибо от коллег) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 16:57 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
Коллеги, хорош на ровном месте разводить пожар. Саян НЕ говорит об OLTP и прочих коротких запросах, он говорит о выборках по skewed data. Виталий НЕ говорит о репортинге и прочей ad-hoc статистике, он говорит о тщательно проработанном приложении, где литералы в коде - действительно зло с точки зрения сопровождения и развития системы. Вы тупо о разном. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 16:59 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
dbms_photoshopчеловек с черно-белым мышлениемЧто-то и я тоже не вижу среди активных участников " серых ". Проблемы нужно решать по мере их появления, а не бездумно везде тыкать литералы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 17:00 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
xtenderElicзасиралингом SGA?а ты уверен, что готов об этом говорить? например, о количестве чайлдов порождаемых биндами сравнительно с 2-3 разными запросами по одному чайлду?А вот это уже уход в сторону. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 17:00 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
Vintкак в таком запросе выделить часть запроса и быстро посмотреть результатВряд ли удобство тестирование должно быть аргументом в пользу binds vs literals. Более того, умные IDE (toad, pl/sql dev) позволяют удобно заменять переменные на :binds, а для последних запоминать что было подставлено (для этого бинда ранее) и автоматически предлагать в окне диалога перед запуском. Другое дело, что некоторые утверждают что все кроме sqlplus - дерьмо для жертв гуя, но это другая песня. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 17:02 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
Elic, У вас сегодня это массовое... перечитай все мои посты внимательно, не забывая о проблеме тс ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 17:03 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
Elic, В каком блин месте ты прочитал про "бездумно" и "везде"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 17:04 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
Elicа не бездумно везде тыкать литералы. Виталий, с биндами разве не то же самое? Бездумное тыканье везде биндов ничуть не лучше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 17:06 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
VintНу или объясни, пожалуйста, как в таком запросе выделить часть запроса и быстро посмотреть результат. Код: plsql 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 17:06 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
andrey_anonymousКоллеги, хорош на ровном месте разводить пожар.Так скучно же на форуме, хоть какой-то огонек появился. А я о чем говорю? Вижу был сделан вывод, бездумное тыкание литералов везде. Ладно, вопрос был риторический. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 17:07 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
xtenderто есть про skewed data ты так и не осилил в 2005 столкнулся с этим в первый раз. Нашел тогда ответ у Кайта, что то про skewed data и гистограммы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 17:07 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
Возвращаясь к проблеме ТС, ТСЕсть гистограммы, по которым однозначно можно видеть, что плохой план для таких значений bind не подходит. (очень неравномерное распределение). Причины и чем можно бороться (помимо baselines-ов) -? Т.е. у ТС в чистом виде skewed data. И bind peeking подкладывает ему жирную свинью. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 17:18 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
dbms_photoshop, я никак не могу сам для себя определиться...мне правда интересно как облегчить поддержку. для старых олтп систем удобство сопровождения/тестирования иногда очень важно. и тут дело не в подмене литералов на бинды. а в использовании литералов или пакетных констант. особенно когда в какой то момент тебе в трубку кричат что все сломалось и месяц не закрывается.. потому что на форме какое то значение потерялось.. и тебе срочно надо лезть в форму написанную 5 лет назад, доставать запрос и смотреть почему какая то цифра не подтянулась на форму и потом не передалась в расчёт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 17:18 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
Elic, самый просто путь конечно, выделить часть когда хорошо написано. а если лапша и подзапрос на подзапросе? понятно что можно переписать... но все относительно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 17:20 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
Vint и тебе срочно надо лезть в форму написанную 5 лет назад, доставать запрос и смотреть А там type = pkg_const.legacy_ussr_finplan_5year_in_one_100500_koef ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 17:21 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
Vintа если лапша и подзапрос на подзапросе? ...то выбиваешь ресурсы на рефакторинг и приводишь к читаемому/сопровождаемому состоянию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 17:21 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
envА там type = pkg_const.legacy_ussr_finplan_5year_in_one_100500_koefЯ пробовал создать такую константу, говорит слишком длинный идентификатор. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 17:24 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
да что тут про сопровождение вообще говорить, если речь не идет о хардкодинге констант в запросы... если упрощенно Код: plsql 1. где тут сложность? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 17:26 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
AmKadenvА там type = pkg_const.legacy_ussr_finplan_5year_in_one_100500_koefЯ пробовал создать такую константу, говорит слишком длинный идентификатор. Благая весть! авторDatabase Overall Core Database Improvements Core database improvements. Long Identifiers The maximum length of identifiers is increased to 128 bytes for most identifiers, up from 30 bytes in previous releases. Providing longer identifiers gives customers greater flexibility in defining their naming schemes, such as longer and more expressive table names. Having longer identifiers also enables object name migration between databases with different character sets, such as Thai to Unicode. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 17:26 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
Vintнаписанную 5 лет назадТебе быстрее будет вспомнить (не вспомнив, найти документацию по значениям; не найдя документации, найти кого-нибудь, кто знает…) физический смысл каждого литерала? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 17:27 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
cursor_sharing=force - и нет проблемы bind/literal Работает, проблем не знаю. OLTP и DW ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 17:28 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
xtenderгде тут сложность? Тут сложность в превращении ошибок компиляции в runtime-error - например, в следствие изменения определения таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 17:29 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
cursor_sharingне знаю ИМХО в этой вырванной из контекста цитате цитате вся соль процитированного поста :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 17:31 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
andrey_anonymousТут сложность в превращении ошибок компиляции в runtime-error - например, в следствие изменения определения таблицы.Согласен. Юнит-тестами код покрывать не предлагать! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 17:33 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
andrey_anonymouscursor_sharingне знаю ИМХО в этой вырванной из контекста цитате цитате вся соль процитированного поста :( Я никого не цитировал и ничего "не вырывал". Поясните, пожалуйста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 17:34 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
andrey_anonymousв следствие изменения определения таблицы. бездумного изменения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 17:41 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
AmKad, даже юнит-тесты не помогут ответить на вопрос "во что обойдется изменить тип поля" или "где стрельнет revoke" если нет депенденсов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 17:46 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
Юниттестер, Конечно. Они ответят на вопрос "во что обошлось". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 17:47 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
Юниттестернет депенденсовc PL/SQL это-то не проблема - t.col%type... а вот запросами напрямую без разницы хоть литералы хоть бинды ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 17:48 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
Предрекаю этой теме еще +3 страницы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 17:50 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
AmKadЮниттестер, Конечно. Они ответят на вопрос "во что обошлось". ...и то не факт :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 18:11 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
Elic, дело не в смысле литерала, а в том что вытащить из пакета и найти неправильно работающую часть запроса без литералов проще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2017, 18:11 |
|
||
|
Про bind peeking
|
|||
|---|---|---|---|
|
#18+
а если заменить на что-либо а-ля Код: plsql 1. то тогда отлаживаться норм будет. До тех пор, правда, пока не перезагрузят сервак и забудут их переинициализировать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2017, 11:34 |
|
||
|
|

start [/forum/topic.php?all=1&fid=52&tid=1884826]: |
0ms |
get settings: |
11ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
155ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
80ms |
get tp. blocked users: |
1ms |
| others: | 232ms |
| total: | 503ms |

| 0 / 0 |
