|
Программирование >> Программирование баз данных
Предназначенный для этого оператор CREATE имеет синтаксис, во многом напоминающий синтаксис других операторов CREATE, если не считать некоторых дополнительных усложнений: CREATE FULLTEXT CATALOG <catalog name> [ON FILEGROUP <filegroup> ] [IN PATH <rootpath>] [WITH ACCENT SENSITIVITY = {0N0FF}] [AS DEFAULT] [AUTHORIZATION <owner name> ] Несмотря на то что основная часть параметров этого оператора CREATE не требует пояснений, в табл. 21.1 приведено их подробное описание. Таблица 21.1. Параметры оператора create fulltext catalog Параметр Описание on filegroup IN path with accent sensitivity as default При создании полнотекстового каталога в СУБД SQL Sen/er создаются некоторые внутренние структуры (системные объекты) для его поддержки. Параметр on filegroup позволяет передать СУБД SQL Server указание на то, в какой файловой группе должны храниться эти внутренние структуры. В подавляющем большинстве инсталляций следует придерживаться рекомендации по использованию для этой цели первичной файловой группы (это значение предусмотрено по умолчанию). Таким образом, эту опцию практически не приходится применять в своей работе Фактически полнотекстовые каталоги создаются не в базе данных, а в отдельном файле на диске. Опция in path позволяет указать для СУБД SQL Server путь к каталогу, в котором должен быть создан этот файл. Если такой путь не задан, то СУБД SQL Server создает полнотекстовый каталог в основном каталоге, развернутом в процессе инсталляции программного обеспечения SQL Server. Автор рекомендует тщательно обдумывать вопрос о том, каким должно быть значение этой опции, каждый раз при решении задачи создания полнотекстового каталога. Дело в том, что неправильный выбор места размещения файлов полнотекстового каталога приведет к чрезмерному увеличению общего количества операций ввода-вывода в связи с необходимостью обеспечения доступа к другим файлам. Поэтому необходимо оценить, правильно ли выбрано место размещения полнотекстового каталога и не следует ли переместить его на другое физическое устройство Назначение параметра with accent sensitivity в основном соответствует его названию (чувствительность к диакритическим знакам). Этот параметр определяет, должны ли приниматься во внимание во время поиска диакритические знаки или нет (например, будет ли буква е рассматриваться как равнозначная букве ё ). Следует учитывать, что если значение этого параметра будет изменено после создания каталога, то потребуется повторное заполнение всего каталога Параметр as default также относится к тем параметрам, название которых соответствует их назначению; он задает создаваемый полнотекстовый каталог в качестве каталога, применяемого по умолчанию для всех новых создаваемых полнотекстовых индексов Окончание табл. 21.1 Параметр Описание AUTHORIZATION Параметр authorization немного сложнее описать по сравнению с другими параметрами. Как можно предположить, он касается вопросов безопасности и прав доступа. В частности, этот параметр позволяет указать в качестве владельца полнотекстового каталога другого пользователя (или другую роль), вместо заданного по умолчанию (таковым является пользователь, фактически создавший каталог). Задача применения этого параметра значительно усложнилась в связи с переходом в СУБД SQL Server от концепции владельца к концепции схем. При определении принадлежности объектов вместо владельцев главным образом стали применяться схемы, но параметр authorization по самой своей сути в большей степени соответствует устаревающей концепции владельца. Чтобы понять, как должен использоваться этот параметр, следует вспомнить, что владельцем полнотекстового каталога может быть не только пользователь, но и роль. При передаче прав владения определенной роли пользователь, создавший полнотекстовый каталог, должен быть членом этой роли во время, когда им был создан этот каталог В качестве примера рассмотрим создание полнотекстового каталога для базы данньпс AdventureWorks. Для этого достаточно выполнить следующие операторы: USE AdventureWorks CREATE FULLTEXT CATALOG MainCatalog IN PATH C:\Program Files\Microsoft SQL Server\MSSQL.l\MSSQL\FTData Приведенные здесь команды также относятся к той категории команд, которые не возвращают большой объем сведений, но если не обнаруживается ошибка, то можно считать, что каталог был создан вполне успешно. В данном примере был задан конкретный путь; именно эта опция чаще всего применяется в процессе создания полнотекстового каталога. По стечению обстоятельств в этом примере был указан путь, который так или иначе применяется по умолчанию, но может быть также указан любой другой допустимый каталог (тем не менее указанный каталог уже должен существовать). В рассматриваемом коде не задан параметр, который бы определ5и1, что этот каталог применяется по умолчанию; это означает, что при создании любых полнотекстовых индексов необходимо будет явно указывать, что для них следует использовать этот каталог. Модификация полнотекстовых каталогов Задача модификации полнотекстовых индексов выполняется в основном так же, как и задача их создания, не считая того, что при таком внесении изменений возможности фактически более ограниченны, чем при создании. Оператор модификации полнотекстового каталога имеет следующий синтаксис: ALTER FULLTEXT CATALOG catalog name { REBUILD [WITH ACCENT SENSITIVITY = {0N0FF} ] REORGANIZE AS DEFAULT Ниже приведено описание трех основньгх параметров, которые могут применяться в этом операторе ALTER. Рассмотрим каждый из них отдельно. Ключевое слово rebuild Назначение параметра REBUILD соответствует его названию, поскольку он полностью перестраивает рассматриваемый полнотекстовый каталог. При этом фактически удаляется физический файл каталога, представленный в файловой системе, и воссоздается с нгуля. По умолчанию новый каталог создается точно с такими же значениями параметров, как и предыдущий. Перестраивается только физический файл (метаданные остаются неизменными). Следует учитывать, что при осуществлении такой перестройки полнотекстовый каталог и все содержащиеся в нем индексы должны находиться в автономном режиме. Перестройка полнотекстового каталога обычно выполняется в целях сжатия содержащего его файла (для исключения удаленных строк и прочих ненужных объектов), но можно также выполнить перестройку, чтобы включить или исключить чувствительность к диакритическим знакам. Для изменения чувствительности к диакритическим знакам достаточно указать, следует ли ее предусмотреть или отменить, подготавливая к выполнению команду REBUILD. Ключевое слово reorganize Параметр REORGANIZE по своему назначению напоминает параметр REBUILD, но имеет по сравнению с ним некоторые преимущества и недостатки. При выполнении команды модификации полнотекстового каталога с параметром REORGANIZE происходит очистка файла каталога, но в оперативном режиме. В результате в большинстве ситуаций происходит переупорядочение объектов, представленных в файле, а не их удаление и повторное создание; в конечном итоге формируется вполне приемлемый файл, но, возможно, не такой эффективный, каким он был бы при полном воссоздании с нгуля. Таким образом, выполнение оператора модификации с ключевым словом REORGANIZE можно рассматривать как процесс дефрагментации. В частности, в ходе выполнения этого оператора может происходить объединение некоторых индексных структур, представленных в файле. Дело в том, что по соображениям производительности во время анализа текста и создания полнотекстового индекса некоторые элементы могут быть представлены в виде собственных субструктур в индексе, а не объединены с основным индексом, относящимся к каталогу. В команде модификации каталога с ключевым словом REORGANIZE предпринимается попытка устранить такой недостаток. Таким образом, с помощью команды с ключевым словом REORGANIZE, в отличие от REBUILD, фактически осуществляется также реорганизация внутренних структур полнотекстового каталога (тех, в которых хранятся метаданные). Ключевое слово as default Ключевое слово AS DEFAULT в команде ALTER действует так же, как и в команде CREATE. Оно указывает, что данный конкретный каталог должен рассматриваться в качестве заданного по умолчанию полнотекстового каталога для всех новых полнотекстовых индексов, создаваемых в указанной базе данных.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |