|
Программирование >> Программирование баз данных
Опция incremental Опция INCREMENTAL может применяться при заполнении индекса, если в таблице имеется столбец с временными отметками (timestamp), а заполнение начинается с тех строк, которые изменились со времени последнего полного заполнения таблицы. Этот вариант заполнения можно рассматривать как обеспечивающий периодическое продолжение работы по заполнению. При использовании инкрементного заполнения отслеживание изменений становится необязательным. Опция update Опция UPDATE аналогична опции INCREMENTAL, но не требует применения столбца с временными отметками. Тем не менее чтобы иметь возможность воспользоваться этой опцией, необходимо разрешить отслеживание изменений. Как и при инкре-ментном заполнении, при заполнении с помощью опции UPDATE обновляются только те строки, которые изменились со времени последнего заполнения. Опция STOP Опция STOP отменяет любые операции заполнения, которые осуществляются в настоящее время прршенительно к данному полнотекстовому индексу. Но при этом автоматическое отслеживание изменений не прекращается; перестают действовать только операции полного или инкрементного обновления. Удаление полнотекстовых индексов Автор уверен, что к этому моменту читатель может сам догадаться, какую синтаксическую структуру имеет оператор удаления полнотекстового индекса, но ради полноты изложения эта структура показана ниже. DROP FULLTEXT INDEX ON <table name> Итак, после выполнения следующей команды полнотекстовый индекс исчезает: DROP FULLTEXT INDEX ON Production.ProductModel Создание полнотекстовых каталогов с применением синтаксиса, относящегося к предыдущим версиям SQL Server До выхода версии SQL Server 2005 использовалась специальная системная хранимая процедура sp fulltext catalog. С формальной точки зрения, эта хранимая процедура позволяла выполнять почти все действия, необходимые для управления каталогом; по существу, с помощью одной команды вызова этой хранимой процедуры удавалось заменить по большей части все те команды, о которых шла речь до сих пор в данной главе. Различие, связанное с использованием этой хранимой процедуры, состоит лишь в том, что при ее вызове необходимо задавать целый ряд параметров, соответствующих конкретной ситуации. Следует учитывать, что различные хранимые процедуры, связанные с полнотекстовым поиском, которые рассматриваются в настоящей главе, обозначены корпорацией Microsoft как устаревшие, а из этого следует, что в какой-то момент в будущем их поддержка может быть прекращена. Автор привел описание этих процедур в основном в целях обеспечения обратной совместимости приложений. Общий синтаксис вызова рассматриваемых системных хранимых процедур показан ниже. ЕХЕС sp fulltext catalog [@ftcat =] <name of catalog> , [©action =] {createdropstart incrementalstart fullstoprebuild} [, [©path =] <root directory> ] Три параметра хранимой процедуры sp f ulltext catalog приведены в табл. 21.3. Таблица 21.3. Параметры хранимой процедуры spfulltextcatalog Параметр Описание @f teat Параметр @f teat определяет полнотекстовый каталог. Если в качестве значения параметра ©action используется опция create, то параметр @f teat задает имя полнотекстового каталога. Применительно к другим опциям параметр @f teat представляет собой имя каталога, по отношению к которому должно быть выполнено намеченное действие ©action Параметр ©action по существу указывает, какое действие должно быть выполнено. Следует учитывать, что хранимая процедура sp f ulltext catalog позволяет выполнить с каталогом почти все возможные операции, поэтому данный параметр служит для указания на то, какое именно действие должно быть осуществлено на этот раз. Данный параметр может иметь шесть возможных опций, которые перечислены ниже. create. Назначение этой опции вполне очевидно. Она вступает в силу немедленно и выполняется с учетом прочих заданных параметров. Итак, опция create указывает, что должен быть создан полнотекстовый каталог. Если используется эта опция, то имя, заданное в параметре ©f teat, не должно еще существовать в базе данных, так как в противном случае попытка создания каталога окончится неудачей. По существу применение хранимой процедуры sp f ulltext eatalog с опцией create равносильно выполнению оператора create fulltext catalog. drop. Назначение этой опции также вполне очевидно. После ее применения происходит удаление полнотекстового каталога. Следует отметить, что перед осуществлением попытки удаления необходимо уничтожить все индексы, имеющиеся в каталоге, поскольку в противном случае операция удаления окончится неудачей. Применение хранимой процедуры sp fulltext eatalog с опцией drop равносильно выполнению оператора drop fulltext catalog. start iNCREMENTAL. Применение этой опции приводит к запуску процедуры заполнения каталога. Опцию start incremental можно рассматривать как часть команды alter fulltext catalog. start full. Эта опция аналогична incremental start, но предусматривает полное заполнение. rebuild. Эта опция по существу обеспечивает удаление и повторное создание указанного каталога. Каталог остается пустым (незаполненным); если же требуется заполнить каталог после применения системной процедуры sp f ulltext eatalog с опцией rebuild, то необходимо еще раз явно вызвать процедуру sp fulltext eatalog и задать опцию START full ©path Этот необязательный параметр определяет путь к корневому каталогу, в котором будет содержаться полнотекстовый каталог. Если путь не указан, то используется подкаталог . . \mssql\ftdata основного каталога, указанного при инсталляции программного обеспечения SQL Server Параметры, описанные в табл. 21.3, вполне позволяют приступить к определению полнотекстового каталога. Как и во всех других примерах, приведенных в настоящей главе, полнотекстовый каталог будет создан применительно к базе данных AdventureWorks. Таким образом, если будет решено создать такой же каталог, который был создан в одном из предыдущР1Х примеров с помощью команды CREATE FULLTEXT CATALOG, то должен быть выполнен следующий код: USE AdventureWorks EXEC sp fulltext catalog ©ftcat = MainCatalog, ©action = CREATE Применявшийся ранее синтаксис создания индексов 1Сак и применительно к каталогам, в предьщущих версиях SQL Server для создания индексов использовалась системная хранимая процедура. По отношению к системной хранимой процедуре создания индексов используются такие же правила именования, как и применительно к предыдущей хранимой процедуре, поэтому ей присвоено имя sp f ulltext table. Синтаксис этой хранимой процедуры приведен ниже. EXEC sp fulltext table [@tabname =] [<schema>.]<table> , [©action =3 {createdropdeactivatestart change tracking stop change trackingstart background updateindex stop background updateindexupdate index start fullIstart incrementalstop} [, [©ftcat = ] <fulltext catalog> , [©keyname =] <index name>] Краткий обзор параметров хранимой процедуры sp fulltext table приведен в табл. 21.4, причем даже краткое знакомство с этими параметрами позволяет убедиться в том, что все они соответствуют опциям команды ALTER FULLTEXT INDEX. Таблица 21.4. Параметры хранимой процедуры spfulltexttable Параметр Описание ©tabname Параметр ©tabname определяет имя таблицы. Предусмотрена возможность задавать двухкомпонентное имя в форме owner. ob j ect. Предполагается, что указанная таблица существует в текущей базе данных. Если указанный объект не существует в базе данных, активизируется сообщение об ошибке ©act ion Параметр ©act ion также определяет действие, которое должно быть выполнено. С этим параметром связан обширный список опций, которые рассматриваются в табл. 21.5 ©ftcat Параметр ©ftcat указывает имя полнотекстового каталога, в котором должен быть создан данный индекс. Этот параметр следует задавать, только если в параметре ©action используется опция create; в противном случае он должен оставаться незаданным ©keyname Параметр ©keyname указывает имя уникального ключа, состоящего из единственного столбца, для рассматриваемой таблицы. Обычно таковым является первичный ключ, но если этот ключ - составной, то можно использовать любой столбец с ограничением целостности unique (возможно, потребуется ввести столбец идентификации или аналогичный столбец с уникальными значениями исключительно с целью определения данного параметра)
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |