27_SH43-0144-00 (1038594), страница 49
Текст из файла (страница 49)
Эту информацию можно получить из столбца TEXT производнойтаблицы каталога SYSCAT.VIEW.v Заново создайте эту сводную таблицу с помощью оператора CREATESUMMARY TABLE с тем же именем и тем же определением сводной таблицы.v Используйте оператор GRANT, чтобы вновь предоставить все привилегии,которые были ранее предоставлены для этой сводной таблицы. (Учтите, чтовсе привилегии, предоставленные для неработоспособной сводной таблицы,отменяются.)Если неработоспособную сводную таблицу не нужно восстанавливать, ее можноявно отбросить с помощью оператора DROP TABLE или можно создать новуюсводную таблицу с тем же именем, но с другим определением.Для неработоспособной сводной таблицы сохраняются только записи впроизводных таблицах каталога SYSCAT.TABLES и SYSCAT.VIEWS; все записив производных таблицах каталога SYSCAT.VIEWDEP, SYSCAT.TABAUTH,SYSCAT.COLUMNS и SYSCAT.COLAUTH удаляются.Отбрасывание оболочкиДля удаления оболочки из базы данных можно использовать оператор DROP.
Вследующем примере показано, как отбросить оболочку DRDA:DROP WRAPPER DRDAБудут отброшены все серверы, отображения типов, отображения функций ипсевдонимы, зависящие от отбрасываемой оболочки. Будьте предельноосторожны при отбрасывании оболочек.Для отбрасывания оболочки необходимо обладать полномочиями SYSADM илиDBADM.Глава 4. Изменение базы данных217Дополнительную информацию об отбрасывании оболочек смотрите вруководстве SQL Reference.Изменение или отбрасывание сервераОператор ALTER SERVER изменяет существующее определение сервера вкаталоге базы данных объединения. Используйте этот оператор, чтобы:v Изменить определение конкретного источника данных.v Изменить определение нескольких источников данных конкретного типа иливерсии.v Внести изменения в конфигурацию конкретного источника данных.Например, если СУБД конкретного сервера перенесена на новую рабочуюстанцию с более быстрым процессором, нужно изменить значение опцииcpu_ratio.Этот оператор нельзя использовать для изменения опций сервера dbname илиnode.В следующем примере показано, как изменить сервер ORA1:ALTER SERVER ORA1 OPTIONS (SET CPU_RATIO '5.0')Серверы можно отбросить из базы данных объединения.
В следующем примерепоказано, как отбросить сервер ORALOC01:DROP SERVER ORALOC01Будут отброшены все отображения типов, отображения функций и псевдонимы,зависящие от отбрасываемого сервера. Будьте осторожны при отбрасываниисерверов.Для изменения или отбрасывания сервера необходимо обладать полномочиямиSYSADM или DBADM.Дополнительную информацию об отбрасывании и изменении серверов смотритев руководстве SQL Reference.Изменение или отбрасывание псевдонимаДля изменения хранящейся локально информации о таблице или производнойтаблице источника данных используется оператор ALTER NICKNAME.Например, этот оператор можно использовать, чтобы изменить локальное имядля столбца или отобразить тип данных столбца на другой тип данных. Этотоператор можно также использовать для добавления опций столбцов.Дополнительную информацию о синтаксисе оператора ALTER NICKNAMEсмотрите в руководстве SQL Reference.218Руководство администратора: РеализацияПри отбрасывании псевдонима созданные на его основе производные таблицыотмечаются как неработоспособные.
Если псевдоним используется впроизводной таблице, нельзя изменить его имена столбцов или типы данных.Чтобы использовать этот оператор, необходимо обладать полномочиямиSYSADM или DBADM, иметь привилегию базы данных CONTROL или ALL дляэтого псевдонима, привилегию схемы ALTERIN (для текущей схемы) или бытьуказанным, как определяющий этого псевдонима в базе данных объединения.Изменение столбцов псевдонимов и отбрасывание псевдонимовВ следующем примере показано, как изменить псевдоним TESTNN, поменявлокальное имя столбца с COL1 на NEWCOL:ALTER NICKNAME TESTNN ALTER COLUMN COL1 LOCAL NAME NEWCOLВ следующем примере показано, как отбросить псевдоним TESTNN:DROP NICKNAME TESTNNИзменение опций столбцов псевдонимаИнформация о столбцах задается в виде значений, присваиваемых параметрам,называемым опциями столбцов.
Все эти значения можно задавать в верхнем илив нижнем регистре. Описание этих значений и дополнительную информациюсмотрите в следующей таблице.Таблица 3. Опции столбцов и их значенияОпцияnumeric_stringДопустимые значенияЗначениепоумолчанию‘Y’Этот столбец содержит только строки числовых данных.ВНИМАНИЕ: Если этот столбец содержит толькочисловые строки, дополненные хвостовыми пробелами,не рекомендуется задавать значение ‘Y’.‘N’Этот столбец может содержать не только строкичисловых данных.‘N’Задав для опции столбца numeric_string значение ‘Y’, выуказываете оптимизатору, что этот столбец не содержитпробелов, которые могут повлиять на сортировку данныхстолбца. Эта опция полезна, если последовательность слиянияисточника данных отличается от последовательности слиянияDB2. Столбцы, для которых задана эта опция, не будутисключаться из локальных (на источнике данных) вычисленийпри несовпадении последовательностей слияния.Глава 4.
Изменение базы данных219Таблица 3. Опции столбцов и их значения (продолжение)ОпцияДопустимые значенияЗначениепоумолчаниюvarchar_no_trailing_blanksУказывает отсутствие хвостовых пробелов для конкретногостолбца VARCHAR:‘N‘‘Y’Этот столбец VARCHAR не содержит хвостовыхпробелов.‘N’Этот столбец VARCHAR содержит хвостовые пробелы.Если столбец источника данных с типом VARCHAR не содержитдополнительных пробелов, выбираемая оптимизаторомстратегия доступа к этому столбцу несколько отличается взависимости от того, содержит ли столбец хвостовые пробелы.По умолчанию оптимизатор “предполагает”, что этот столбец вдействительности содержит хвостовые пробелы.
Исходя из этогопредположения, оптимизатор разрабатывает стратегию доступа,включающую изменение запросов, чтобы возвращаемые значенияэтого столбца соответствовали ожидаемым пользователем.Однако если столбец VARCHAR не содержит хвостовых пробелови вы сообщите это оптимизатору, он сможет разработать болееэффективную стратегию доступа.
Чтобы сообщитьоптимизатору, что конкретный столбец не содержит хвостовыхпробелов, задайте этот столбец в операторе ALTER NICKNAME(его синтаксис смотрите в руководстве SQL Reference).Отбрасывание индекса, расширения индекса или спецификациииндекса|||||||Ни одно из условий в определении индекса, расширении индекса илиспецификации индекса нельзя изменить; необходимо отбросить индекс илирасширение индекса и создать их заново. (Отбрасывание индекса илиспецификации индекса не вызывает отбрасывания каких-либо других объектов,но некоторые пакеты могут стать недействительными.)Чтобы отбросить индекс, расширение индекса или спецификацию индекса спомощью Центра управления:||||||||2. Щелкните правой кнопкой мыши по индексу, который нужно отбросить, и выберитеиз всплывающего меню пункт Отбросить.||Чтобы отбросить индекс, расширение индекса или спецификацию индекса изкомандной строки, введите команду:1.
Раскройте дерево объектов и найдите папку Индексы.3. Включите переключатель Подтверждение и нажмите кнопку OK.220Руководство администратора: Реализация|DROP INDEX <имя_индекса>Следующий оператор SQL отбрасывает индекс с именем PH:DROP INDEX PH||Следующий оператор SQL отбрасывает расширение индекса с именем IX_MAP:|||||Задаваемое имя расширения индекса должно указывать расширение индекса,описанное в каталоге. Условие RESTRICT задает правило, согласно которому недолжны существовать индексы, зависящие от определения этого расширенияиндекса.
Если от этого расширения индекса зависит базовый индекс, операцияотбрасывания не будет выполнена.DROP INDEX EXTENSION ix_map RESTRICTНельзя явно отбросить индекс первичного ключа или ключа уникальности (заисключением спецификации индекса). Для его отбрасывания нужноиспользовать один из следующих методов:v Если первичный индекс или ограничение уникальности были автоматическисозданы для первичного ключа или ключа уникальности, при отбрасыванииэтого первичного ключа или ключа уникальности будет отброшен и этотиндекс.
Для этого используется оператор ALTER TABLE.v Если первичный индекс или ограничение уникальности были определеныпользователем, необходимо сначала отбросить первичный ключ или ключуникальности с помощью оператора ALTER TABLE. После отбрасыванияпервичного ключа или уникального ключа этот индекс уже не будет считатьсяпервичным индексом или индексом уникальности и его можно будетотбросить явно.Все пакеты и кэшируемые динамические операторы SQL, зависящие ототброшенных индексов, отмечаются как недействительные.
Дополнительнуюинформацию смотрите в разделе “Зависимости операторов при измененииобъектов”. Изменения, вызванные добавлением или отбрасыванием индексов, невлияют на прикладные программы.Зависимости операторов при изменении объектовЗависимости операторов включают в себя зависимости пакетов и кэшируемыхдинамических операторов SQL. Пакет - это объект базы данных, содержащийинформацию, необходимую менеджеру баз данных для обеспечения наиболееэффективного доступа к данным для конкретной прикладной программы.Связывание - это процесс, создающий пакет, необходимый менеджеру базданных для обращения к базе данных при выполнении прикладной программы.Подробное описание создания пакетов смотрите в руководстве ApplicationDevelopment Guide.Глава 4. Изменение базы данных221Пакеты и кэшируемые динамические операторы SQL могут зависеть от многихтипов объектов.
Полный список таких объектов смотрите в руководстве SQLReference.Ссылки на эти объекты могут быть явными (пример: таблица илипользовательская функция, заданные в операторе SQL SELECT). Они могуттакже быть неявными (пример: зависимая таблица, которую нужно проверить,чтобы убедиться, что при удалении строки из родительской таблицы ненарушается реляционное ограничение). Пакеты также зависят от привилегий,предоставленных создателю пакета.Если пакет или кэшируемый динамический оператор SQL зависит от некоторогообъекта и этот объект отброшен, этот пакет или кэшируемый динамическийоператор SQL переводится в состояние ″недействительный″.