Август/Сентябрь 2003


Профессионалу администратору


Том Кайт

О вопросах, расщепленных строках и декодировании
(On Asking, Chaining, and Decoding, By Tom Kyte)

Источник: журнал Oracle Magazine, November-December 2002
( http://otn.oracle.com/oramag/oracle/02-nov/o62asktom.html).

Наш эксперт отвечает на вопросы о вопросах, расщепленных строках и декодировании.

Как Вы справляетесь с вопросами форума "Ask Tom" (asktom.oracle.com)? Сколько вопросов Вы получаете и как отбираете их для публикации в журнале?

Хороший вопрос. С января 2000 по июль 2002 я получил и ответил более чем на 16 000 вопросов; то есть в среднем 18 в день, каждый день года. Обычно я разрешаю моему приложению принимать до 10 вопросов. После этого система автоматически выдает сообщение: "Sorry I have a large backlog" (извините, у меня большая задолженность), это сообщение вы часто видите. Я не хочу, чтобы в очереди было более 10 вопросов, и это позволяет мне своевременно отвечать на вопросы. Почти на все вопросы я отвечаю сам, иногда обращаясь за помощью к специалистам по конкретным технологиям (в таких случаях в ответах я всегда ссылаюсь на них). Когда я в отъезде, нахожусь на установке заказчика или беру выходной, я не принимаю никаких вопросов. В другие дни я могу принять 40 и более вопросов. Все зависит от того, что делается еще.

При выборе вопросов для публикации в журнале Oracle Magazine я фактически предоставляю право отбора вам. Моя рейтинговая система находит вопросы с наиболее высоким рейтингом, отдавая предпочтения статьям с наибольшим текущим рейтингом. Например, когда я готовился к написанию данного выпуска колонки, следующий ниже раздел о расщепленных строках имел 10 "рецензий" со средней оценкой каждой, равной 5 звездочкам (превосходные очки!). Вот почему я выбрал этот конкретный вопрос (и другие, которые также имели много рецензий и высокие оценки читателей).

После выбора статей для публикации мы "прихорашиваем" их, редактируя – технически и грамматически. Затем они публикуются в журнале.

Все о расщепленных строках

У меня есть таблица с 25 процентами расщепленных строк. Я пытаюсь определить влияние этого расщепления и в случае необходимости перестроить таблицу. Для определения необходимости реорганизации таблицы я выполняю следующий тест:

SQL> select table_name, num_rows, chain_cnt 
from dba_tables 
where owner = 'DB_USER' and table_name = 'MYTABLE';
TABLE_NAME      NUM_ROWS     CHAIN_CNT
------------    ----------   ----------
MYTABLE            1061399       277139
 
SQL> set autotrace traceonly stat;
SQL> select /*+ full */ CNY#, PAYMENTDATE from DB_USER.MYTABLE ;

1064428 rows selected.
SQL> select a.name, b.value
from  v$statname a, v$mystat b
where a.statistic#=b.statistic#
and name = 'table fetch continued row';
NAME                        	VALUE
--------------------------- 	---------------
table fetch continued row                    99

Несмотря на то, что статистические данные показывают наличие большого количества расщепленных строк, в режиме автотрассировки статистический показатель table fetch continued row (дополнительные выборки расщепленных строк таблиц) не подтверждает этого. Можете ли вы объяснить такое поведение? Я делаю что-то неправильно?

Для ответа на этот вопрос нужно изучить, каким образом обрабатываются данные.

E-mail this page