
Август/Сентябрь 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 (дополнительные выборки расщепленных строк таблиц) не подтверждает этого. Можете ли вы объяснить такое поведение? Я делаю что-то неправильно?
Для ответа на этот вопрос нужно изучить, каким образом обрабатываются данные.
|