В связи с тем, что MS SQL Express не поддерживает SQL Agent, мы предлагаем следующий вариант запуска задания на обновление полнотекстовых индексов.
Совет директоров OpenAI единогласно отклонил предложение миллиардера Илона Маска о покупке некоммерческой организации, которая фактически управляет OpenAI, сообщила компания в пятницу.
Через два года после введения предоплаченного 100-летнего хостингового пакета материнская компания WordPress, Automattic, внедрила доменную регистрацию на аналогичный срок стоимостью $2000.
Обновление полнотекстовых индексов (MS SQL Express)
1) создать в MS SQL процедуру с помощью скрипта:
CREATE PROCEDURE [dbo].[spxml_update_fine_grained_fulltext_indexes]
AS
BEGIN
declare @update bit
set @update = 1 включает
полнотекстовое обновление
declare ft_cur cursor for select object_id,name from sys.tables
where OBJECTPROPERTYEX(object_id, 'TableHasActiveFulltextIndex')=1
declare @table_id int
declare @table_name varchar(256)
open ft_cur
declare @msg nvarchar(max)
declare @sql nvarchar(max)
declare @TableFulltextPendingChanges int
declare @TableFulltextPopulateStatus int
declare @TableFulltextItemCount int
RAISERROR ('Полнотекстовое индексирование включено.',1,1);
fetch next from ft_cur into @table_id,@table_name
while @@FETCH_STATUS=0
begin
SELECT @TableFulltextPendingChanges = cast(OBJECTPROPERTYEX(@table_id, 'TableFulltextPendingChanges')
as int),
@TableFulltextPopulateStatus = cast(OBJECTPROPERTYEX(@table_id, 'TableFulltextPopulateStatus') as
int)
if (@TableFulltextPopulateStatus=5)
begin
RAISERROR ('Полнотекстовое индексирование приостановлено, или не хватает ресурсов на его
выполнение.',16,1);
end
if (@update<>1)
begin
set @msg='Статус полнотекстового индексирования таблицы '+@table_name+ ':'
+cast(@TableFulltextPopulateStatus as varchar(32)) +' , колво
измененных документов:' +
cast(@TableFulltextPendingChanges as varchar(32));
RAISERROR (@msg,1,1);
end
if (@TableFulltextPopulateStatus=0 and @TableFulltextPendingChanges>0)
begin
if (@update<>1)
begin
set @msg='Требуется полнотекстовое индексирование таблицы '+@table_name;
RAISERROR (@msg,1,1);
end
else
begin
set @msg='Полнотекстовое индексирование таблицы '+@table_name+ ' включено.';
RAISERROR (@msg,1,1);
set @sql = 'ALTER FULLTEXT INDEX ON ['+ @table_name + '] START INCREMENTAL POPULATION'
exec(@sql);
SELECT @TableFulltextPopulateStatus = cast(OBJECTPROPERTYEX(@table_id,
'TableFulltextPopulateStatus') as int)
while @TableFulltextPopulateStatus>0 and @TableFulltextPopulateStatus<5
begin
WAITFOR DELAY '00:00:05';
SELECT @TableFulltextPopulateStatus = cast(OBJECTPROPERTYEX(@table_id,
'TableFulltextPopulateStatus') as int)
end
if (@TableFulltextPopulateStatus=5)
begin
RAISERROR ('Полнотекстовое индексирование приостановлено, или не хватает ресурсов
на его выполнение.',16,1);
end
SELECT @TableFulltextItemCount = cast(OBJECTPROPERTYEX(@table_id,
'TableFulltextItemCount') as int)
set @msg='Полнотекстовое индексирование таблицы '+@table_name+ ' завершено, индексировано
'+cast(@TableFulltextItemCount as varchar(32))+' документов.';
RAISERROR (@msg,1,1);
end
end
else
begin
set @msg='Полнотекстовое индексирование таблицы '+@table_name+ ' не требуется ';
begin
set @msg='Полнотекстовое индексирование таблицы '+@table_name+ ' не требуется ';
RAISERROR (@msg,1,1);
end
fetch next from ft_cur into @table_id,@table_name
end
close ft_cur
deallocate ft_cur
RAISERROR ('Полнотекстовое индексирование завершено.',1,1);
END
GO
Скрипт также доступен в разделе файлы ‐> PROC_spxml_update_fine_grained_fulltext_indexes.sql;
2) обработать в приложении WebSoft HCM Администратор пакет FT_Update_MSSQL_Express.zip(доступен в разделе файлы);
3) настроить необходимое расписание запуска агента FT_Update_MSSQL_Express в WT Администратор.