Най-малката единица за достъп до данни в Oracle Database е блок. Нито един ред.
Всеки блок може да съхранява много редове.
Базата данни има достъп до блок в текущ или последователен режим.
- Текущ =тъй като блокът съществува „в момента“.
- Постоянен =тъй като блокираният е съществувал по време на стартирането на вашата заявка.
Заявката и текущата колона отчитат колко пъти базата данни е осъществила достъп до блок в последователен (заявка) и текущ режим.
При достъп до блок той може вече да е в буферния кеш (памет). Ако е така, не е необходим достъп до диска. Ако не, трябва да извърши физическо четене (pr). Дисковата колона е броят на общите физически четения.
Статистиката за всеки ред в плана е цифрата за тази операция. Плюс сумата от всички дъщерни операции.
С прости думи, базата данни обработва плана, като първо осъществява достъп до първото дете. След това предава редовете нагоре към родителя. След това всички други дъщерни операции на този родител в ред. Дъщерните операции са с отстъп спрямо родителя на дисплея.
И така, базата данни обработи вашата заявка по следния начин:
- Прочетете 2000 реда от CUSTOMER. Това изискваше 749 последователни приемания на блокове и 363 четения на диск (cr и pr стойности на този ред). Това отне 10 100 микросекунди.
- Прочетете 112 458 реда от BOOKING. Това направи 8203 последователни четения и нула дискови четения. Това отне 337 595 микросекунди
- Съедини тези две таблици заедно с помощта на хеш съединение. Стойностите CR, PR, PW (физически записи) и времето са сумата от операциите под това. Плюс каквато и работа да свърши тази операция. Така хеш съединението:
- извърши 8 952 - ( 749 + 8 203 ) =нула последователни четения
- направи 363 - ( 363 + 0 ) =нула физически четения
- отне 1 363 447 - ( 10 100 + 337 595 ) =1 015 752 микросекунди за изпълнение
Забелязвате, че общите стойности на CR и PR за хеш-съединяването съвпадат с сумите на заявката и диска в реда за извличане?
Колоната за преброяване отчита колко пъти е извършена тази операция. Извличането е извикване към базата данни за получаване на редове. И така, клиентът е извикал базата данни 7499 пъти. Всеки път, когато получи ceil( 112 458 / 7 499 ) =15 реда.
CPU е общото време в секунди, през което процесорите на сървъра са изпълнявали тази стъпка. Изминалото е общото време на стенен часовник. Това е процесорното време + всяка допълнителна работа. Като четене на диск, мрежово време и др.