Хочу научиться читать SQL...

zVlad
Уже с Приветом
Posts: 15421
Joined: 30 Apr 2003 16:43
Has thanked: 1 time

Re: Хочу научиться читать SQL...

Post by zVlad »

iDesperado wrote:....
zVlad wrote: Вот и с картинками Вы так уперлись потому больше Вам упираться не во что, а хочется. Так что слушайте.
суть вовсе не в картинках, как видите с zgur мы текстовые планы выкладывали. суть в том, что информации вашего обрезка из PLAN_TABLE не хватает, что бы развернуть связанный граф и понять, какие операции запроса отняли большую часть ресурсов. психически здоровый человек не будет строить граф в уме. учитывая, что кол-во узлов графа будет больше из-за колонки MATCHCOLS во многих случаях это просто и не реально. ваш обрезок не дает большей части минимально необходимой информации, ни связей графа, ни очередности операций, ни расклада костов по операциям. т.е. у вас нет понимания, что такое план.....
Да, интересная логическая цепочка с заранее известным финалов - сказать гадость zVlad-u.

Я Вам сто раз предлагал сказать какой именно информации Вам не хватает. Но Вы как Ванька-Встанька (или неваляшка) снова и снова приходите к одной и той же навясчивой идее что у zVlada нет понимания что такое план.

MATCHCOLS на графе никак не отражается. Потому что это: The number of index columns matched on an index scan.

Вот Вам две ссылочки с описанием наиболее важных колонок PLAN_TABLE в DB2 for zOS. Найдите то чего Вам не хватает и я тут же дополню свою выборку столбцов из PLAN_TABLE для обсуждаемого SQL:

http://db2dbazos.blogspot.ca/2009/03/ho ... plain.html

https://legacymainframe.wordpress.com/2 ... 2-explain/

Вот Вам еще ссылочка о предмете нашего спора (обратите внимание на первый слайд на странице 3):

http://www.mdug.org/Presentations/Expla ... Lawson.pdf
zVlad
Уже с Приветом
Posts: 15421
Joined: 30 Apr 2003 16:43
Has thanked: 1 time

Re: Хочу научиться читать SQL...

Post by zVlad »

Дело вовсе не в том как некоторая инфа представлена, в виде ли чисел и текста или в виде визуального образа - графа. Дело в том насколько полна информация и насколько удобно она представленна не только для человеческого понимания, но главным образом для ее автоматической обработки.

Второй важный аспект представлется тем насколько информация адекватна конкретной платформе. Это важно потому что платформы разнятся и важное на одной может быть совершенно не существенно на другой, или возможное для одной платформы может быть просто не доступным на другой.

Не претендуя на полноту освещения второго аспекта я бы хотел затронуть такой параметр как cost.

В этой теме прозвучали следущие cost-ы:

- Cost (%CPU), видимо из Оракл. Определения у меня нет, но я полагаю кто-нибудь восполнит этот пробел.

- PROCMS, and PROCSU, а также TOTAL_COST - это из DB2 for zOS. Вот их определения:

PROCMS: "The estimated processor cost, in milliseconds, for the SQL statement. The estimate is rounded up to the next integer value. The maximum value for this cost is 2147483647 milliseconds, which is equivalent to approximately 24.8 days. If the estimated value exceeds this maximum, the maximum value is reported. If an accelerator product is used the difference is reflected in this value."
PROCSU: "The estimated processor cost, in service units, for the SQL statement. The estimate is rounded up to the next integer value. The maximum value for this cost is 2147483647 service units. If the estimated value exceeds this maximum, the maximum value is reported. If an accelerator product is used, this value represents the estimated cost including any impact of acceleration."
TOTAL_COST: "The overall estimated cost of the statement. If an accelerator product is used the benefit is reflected in this value. This cost should be used only for reference purposes."

- Cost I/O и Total Cost - пердставленны iDesperado из предположительно DB2 for LUW.

Три разных набора имеем. Только в случае с DB2 for zOS есть некие Service Units, но нет Cost I/O как в LUW.

Вот определение SU, которые кстати используются не только в PLAN_TABLE, но везде на МФ где это имеет смысл: как параметр производительности МФ, как продолжительность периода в WLM, и т.д.:
CPU Service Units is a metric used by z/OS to measure the CPU consumption by
transactions executing under z/OS dispatchable units, such as tasks (TCB) or service
requests (SRB). A CPU Service Unit should be more or less repetitive and only include the
productive CPU execution. Below is an explanation of these terms:
- Productive: The consumption of CPU due to overheads such as page fault, swapping, and
dispatcher is not accounted for in the transaction CPU Service Unit.

- Repetitive: The same value is roughly measured for the same transaction (executing the
same logic with the same amount of I/O records) in any CPU.
Продолжим позже если кого-нибудь это интересует и есть что сказать
User avatar
ALV00
Уже с Приветом
Posts: 1494
Joined: 08 Mar 2002 10:01
Location: NJ

Re: Хочу научиться читать SQL...

Post by ALV00 »

iDesperado wrote:да ладно. хуже документации, чем db2 не встречал. мы помниться три дня расшифровывали доку о совместимости блокировок
viewtopic.php?f=46&t=161886&start=375#p4482681
нигде такого безобразия больше не встречал.
И где вы эту гадость нашли? Google -> "db2 lock compatibility", первая ссылка содержит понятную красивенькую табличку. Ну вот сравните два примера доков:
DB2
ORACLE
В первом примере дана ясная диаграмма, с первого взгляда уже все понятно. Потом объяснены параметры, их типы и всякие подробности для любознательных. Зацените также количество текста и его форматирование. Написано аккуратно, грамотно, эстетически красиво.
Вторая ссылка - информации минимум, изложено невнятно, надо всматриваться и вчитываться. Какая то халтура, работа троечника.

Или например, набрать ORA-xxxx - выносит на форумы, а какого черта? В системных доках должна быть исчерпывающая информация. В db2 достаточно набрать в CLP номер ошибки и выводится именно исчерпывающая информация, то есть в 99% случаев больше ничего не нужно.
User avatar
ALV00
Уже с Приветом
Posts: 1494
Joined: 08 Mar 2002 10:01
Location: NJ

Re: Хочу научиться читать SQL...

Post by ALV00 »

mynameiszb wrote:... полноценной и отлично структурированной документации по Ораклу...
Где такое дают? Без подколок, нужно для работы очень.
mynameiszb wrote:Жаловаться, что на stackoverflow обсуждают Оракл - это уже из раздела юмора...
То, что люди идут на форум, а не на системные доки, говорит о низком качестве последних.
mynameiszb
Уже с Приветом
Posts: 1665
Joined: 16 Jul 2009 14:18
Location: Uganda

Re: Хочу научиться читать SQL...

Post by mynameiszb »

ALV00 wrote:
mynameiszb wrote:... полноценной и отлично структурированной документации по Ораклу...
Где такое дают? Без подколок, нужно для работы очень.
Вы шутите? https://docs.oracle.com/en/database/ - есть все, что надо.
ALV00 wrote:То, что люди идут на форум, а не на системные доки, говорит о низком качестве последних.
Это говорит лишь о том, что Oracle использует любой способ отсечь халявщиков. Основная документация - более чем достаточна для установки и сопровождения базы. А вот если вы хотите копать глубже и получать полноценный саппорт - будьте добры зарегестрироваться официально и работайте через Металинк.
ALV00 wrote:например, набрать ORA-xxxx - выносит на форумы
Металинк. Как только начал плотно работать с ораклоидными базами, всю нужную информацию получал там (не считая базовых вопросов в официальной документации).

Увы - это политика Оракла. И никуда от этого не деться.
iDesperado
Уже с Приветом
Posts: 1349
Joined: 28 Nov 2008 17:50

Re: Хочу научиться читать SQL...

Post by iDesperado »

ALV00 wrote: И где вы эту гадость нашли? Google -> "db2 lock compatibility", первая ссылка содержит понятную красивенькую табличку.
товарищ, сосредоточтесь. речь идет о db2/zOS
ALV00 wrote: Ну вот сравните два примера доков:
DB2
ORACLE
В первом примере дана ясная диаграмма, с первого взгляда уже все понятно.
ссылка на оракл кривая. по ссылке на db2 первый же вопрос, что херь ? что ЭТО ? нахрена весь этот зоопарк блокировок ? что за intenе, что за super exclusive. где хоть какое-то пояснения, нахрена все эти сложности ?
ALV00 wrote:Вторая ссылка - информации минимум, изложено невнятно, надо всматриваться и вчитываться. Какая то халтура, работа троечника.
вот что у оракла на эту тему
Modes of Locking

Oracle uses two modes of locking in a multiuser database:

Exclusive lock mode prevents the associates resource from being shared. This lock mode is obtained to modify data. The first transaction to lock a resource exclusively is the only transaction that can alter the resource until the exclusive lock is released.

Share lock mode allows the associated resource to be shared, depending on the operations involved. Multiple users reading data can share the data, holding share locks to prevent concurrent access by a writer (who needs an exclusive lock). Several transactions can acquire share locks on the same resource.
куда здесь всматриваться ? в что тут можно вчитываться ?
ALV00 wrote: Или например, набрать ORA-xxxx - выносит на форумы, а какого черта? В системных доках должна быть исчерпывающая информация. В db2 достаточно набрать в CLP номер ошибки и выводится именно исчерпывающая информация, то есть в 99% случаев больше ничего не нужно.
ну если вы бровсером пользоваться не умеете, то какая может быть речь о субд ? у меня нет идей как может вот тут http://docs.oracle.com не получиться вбить ORA-xxxx или не найти раздел по ошибкам в доках.
то что гугл не выкидывает на oracle.com говорит о том, что субд популярна, в то время как db2 никому кроме разработчиков не нужен и нигде не обсуждается.
mynameiszb
Уже с Приветом
Posts: 1665
Joined: 16 Jul 2009 14:18
Location: Uganda

Re: Хочу научиться читать SQL...

Post by mynameiszb »

iDesperado wrote: говорит о том, что субд популярна
Индусов набрали, просрут нашу няшу :(
zVlad
Уже с Приветом
Posts: 15421
Joined: 30 Apr 2003 16:43
Has thanked: 1 time

Re: Хочу научиться читать SQL...

Post by zVlad »

ALV00 wrote:
iDesperado wrote:....
И где вы эту гадость нашли? ...
Да это ж его самaя главная способность. Он профессионал в этом.
iDesperado
Уже с Приветом
Posts: 1349
Joined: 28 Nov 2008 17:50

Re: Хочу научиться читать SQL...

Post by iDesperado »

zVlad wrote: Три разных набора имеем. Только в случае с DB2 for zOS есть некие Service Units, но нет Cost I/O как в LUW.
Note: The estimated elapsed time for each SQL statement is retrieved from the column TOTAL_COST in the DB2 V9 table DSN_STATEMNT_TABLE. This column is populated by the DB2 optimizer, during Explain, with the estimated elapsed time of the SQL statement based on CPU and I/O cost.

Влад, выложите скриншоты графического представления из Data Studio обсуждаемых четырех запросов
zVlad
Уже с Приветом
Posts: 15421
Joined: 30 Apr 2003 16:43
Has thanked: 1 time

Re: Хочу научиться читать SQL...

Post by zVlad »

iDesperado wrote:
zVlad wrote: Три разных набора имеем. Только в случае с DB2 for zOS есть некие Service Units, но нет Cost I/O как в LUW.
Note: The estimated elapsed time for each SQL statement is retrieved from the column TOTAL_COST in the DB2 V9 table DSN_STATEMNT_TABLE. This column is populated by the DB2 optimizer, during Explain, with the estimated elapsed time of the SQL statement based on CPU and I/O cost.

Влад, выложите скриншоты графического представления из Data Studio обсуждаемых четырех запросов
Обясните внятно для чего Вам нужны эти screen shot-ы - выложу, а так нет.

В принципе сейчас попрoбую выложить screen shot произвольного запроса, чтобы Вы не говорили что у меня нет Data Studio.
iDesperado
Уже с Приветом
Posts: 1349
Joined: 28 Nov 2008 17:50

Re: Хочу научиться читать SQL...

Post by iDesperado »

zVlad wrote: Обясните внятно для чего Вам нужны эти screen shot-ы - выложу, а так нет.
я хочу увидеть сколько узлов покажет студия и как будут отрисованны связи, сравнить с тем что вы заселектили из plan_table. скриншот произвольного запроса мне не нужен, их у гугла и так достаточно.
zVlad
Уже с Приветом
Posts: 15421
Joined: 30 Apr 2003 16:43
Has thanked: 1 time

Re: Хочу научиться читать SQL...

Post by zVlad »

iDesperado wrote:
zVlad wrote: Обясните внятно для чего Вам нужны эти screen shot-ы - выложу, а так нет.
я хочу увидеть сколько узлов покажет студия и как будут отрисованны связи, сравнить с тем что вы заселектили из plan_table. скриншот произвольного запроса мне не нужен, их у гугла и так достаточно.
Смотрите. Это последняя редакция запроса с убранными OR ( 0 = 1) и без EXISTS:

Privet1.doc

Code: Select all

SELECT  WOTSK  .  FACILITY  , 
    WOTSK  .  UNIT  , 
    WOTSK  .  INTERRUPT  , 
    WOTSK  .  SHUTDOWN_NBR  , 
    WOTSK  .  WORK_ORDER_NBR  , 
    WOTSK  .  WORK_ORDER_TASK  , 
    WOTSK  .  TASK_SEQUENCE  , 
    WOTSK  .  WO_TSK_STATUS  , 
    WOTSK  .  WO_TSK_PRIORITY  , 
    WOTSK  .  NEED_DATE  , 
    WOTSK  .  WR_TASK_TITLE 
FROM  TIDWOTSK  WOTSK 
WHERE  (  WOTSK  .  WORK_ORDER_NBR  BETWEEN  CAST(?  AS  CHARACTER(8)) 
AND  CAST(?  AS  CHARACTER(8))  ) 
AND  (  WOTSK  .  FACILITY  =  CAST(?  AS  CHARACTER(3))  ) 
AND  (  WOTSK  .  UNIT  BETWEEN  CAST(?  AS  CHARACTER(6)) 
AND  CAST(?  AS  CHARACTER(6))  ) 
AND  (  (  WOTSK  .  WO_TSK_STATUS  =  '45'  ) 
OR  (  WOTSK  .  WO_TSK_STATUS  =  '48'  )  ) 
AND  (  WOTSK  .  WORK_ORDER_NBR  ||  WOTSK  .  WORK_ORDER_TASK  BETWEEN  CAST(?  AS  CHARACTER(8))  ||  CAST(?  AS  CHARACTER(2)) 
AND  CAST(?  AS  CHARACTER(8))  ||  CAST(?  AS  CHARACTER(2))  ) 
ORDER  BY  WOTSK  .  WORK_ORDER_NBR  DESC  , 
    WOTSK  .  WORK_ORDER_TASK  DESC 
 
You do not have the required permissions to view the files attached to this post.
Last edited by zVlad on 20 Jan 2015 22:41, edited 1 time in total.
iDesperado
Уже с Приветом
Posts: 1349
Joined: 28 Nov 2008 17:50

Re: Хочу научиться читать SQL...

Post by iDesperado »

zVlad wrote: Смотрите. Это последняя редакция запроса с убранными OR ( 0 = 1) и без EXISTS:
вот смотрю и думаю, мне и в самом деле нужно разжевывать в чем разница между связанным графом из пяти нод, с вот этим

Code: Select all

xxxx       0  I                   1  TOIWOTS9 
?
zVlad
Уже с Приветом
Posts: 15421
Joined: 30 Apr 2003 16:43
Has thanked: 1 time

Re: Хочу научиться читать SQL...

Post by zVlad »

iDesperado wrote:
zVlad wrote: Смотрите. Это последняя редакция запроса с убранными OR ( 0 = 1) и без EXISTS:
вот смотрю и думаю, мне и в самом деле нужно разжевывать в чем разница между связанным графом из пяти нод, с вот этим

Code: Select all

xxxx       0  I                   1  TOIWOTS9 
?
Обязательно надо. Go ahead.
zVlad
Уже с Приветом
Posts: 15421
Joined: 30 Apr 2003 16:43
Has thanked: 1 time

Re: Хочу научиться читать SQL...

Post by zVlad »

И еще напомню Вам, iDesperado, про мой вопрос от которого Вы ушли молча. Вопрос был как Вы собираетесь анализировать сотни тысяч планов доступа с помощью графов?

К этому вопросу примыкает также недоумение по поводу следующих фактов: графические тулзы как Вы правильно подметили появились в 90-е, а собственно БД широко используются с 80-х. Как по Вашему тогдашние DBA получали информацию о планах доступа? Как ни с ними работали?

Return to “Вопросы и новости IT”