Danh mục toàn văn bản có theo dõi thay đổi: AUTO sẽ tự động cập nhật nếu Theo dõi thay đổi cho bảng đó không được bật?


12

Tôi có bảng cơ sở dữ liệu này giả sử để giữ cho chỉ mục toàn văn được cập nhật. Tuy nhiên tôi hoàn toàn không thấy nó xảy ra (không có lỗi trong nhật ký vì nhật ký cuối cùng tôi thấy là khi tôi kích hoạt thủ công).

Đây là những gì tôi đang thấy ...

thuộc tính danh mục toàn văn

nhưng trên bàn ...

nhập mô tả hình ảnh ở đây

Đây có thể là lý do tại sao nó không xảy ra tự động?


Để rõ ràng, bạn đang đề cập đến nhật ký nào?
Mike Zalansky

@mikezalansky đó là nhật ký toàn văn bản có thể tìm thấy tại(..\MSSQL\Log\SQLFT*)
Kin Shah

Câu trả lời:


14

Bạn đang nhìn nhầm chỗ.

Bạn phải kiểm tra như sau:

nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây

Sử dụng T-SQL ..

Use database_name
go
ALTER FULLTEXT INDEX ON schema.table_name SET CHANGE_TRACKING AUTO;

Sau khi hoàn tất, bạn có thể kiểm tra trạng thái của datetime dân cư cuối cùng

-- script source : http://stackoverflow.com/a/10505496/1387418
-- Modified by Kin on Dec 14' 2015 to reflect the FTCatalogName
DECLARE @CatalogName VARCHAR(MAX)
SET     @CatalogName = 'AW2008FullTextCatalog' -- change here !

SELECT name as FTCatalogName, 
    DATEADD(ss, FULLTEXTCATALOGPROPERTY(@CatalogName,'PopulateCompletionAge'), '1/1/1990') AS LastPopulated
    ,(SELECT CASE FULLTEXTCATALOGPROPERTY(@CatalogName,'PopulateStatus')
        WHEN 0 THEN 'Idle'
        WHEN 1 THEN 'Full Population In Progress'
        WHEN 2 THEN 'Paused'
        WHEN 3 THEN 'Throttled'
        WHEN 4 THEN 'Recovering'
        WHEN 5 THEN 'Shutdown'
        WHEN 6 THEN 'Incremental Population In Progress'
        WHEN 7 THEN 'Building Index'
        WHEN 8 THEN 'Disk Full.  Paused'
        WHEN 9 THEN 'Change Tracking' END) AS PopulateStatus
FROM sys.fulltext_catalogs

nhập mô tả hình ảnh ở đây

Chèn một số dữ liệu ..

insert into HumanResources.JobCandidate
(BusinessEntityID, Resume, ModifiedDate)
values 
    (4, NULL, DEFAULT)

Bây giờ bạn sẽ thấy rằng Danh mục FT được cập nhật.

nhập mô tả hình ảnh ở đây

Trong nhật ký ( ..\MSSQL\Log\SQLFT*) cũng vậy, bên dưới sẽ là thông báo ...

2015-12-14 12: 36: 51,29 spid50s Thông tin: Toàn bộ dân số Tự động hoàn thành cho bảng hoặc chế độ xem được lập chỉ mục '[AdventureWorks2012]. [HumanResource]. [JobCandidate]' (bảng hoặc ID được xem chỉ mục ' 5 '). Số tài liệu được xử lý: 1. Số tài liệu không thành công: 0. Số tài liệu sẽ được thử lại: 0.

Từ BOL :

Theo mặc định hoặc nếu bạn chỉ định CHANGE_TRACKING AUTO, Công cụ toàn văn sử dụng dân số tự động trên chỉ mục toàn văn. Sau khi toàn bộ dân số ban đầu hoàn thành, các thay đổi được theo dõi khi dữ liệu được sửa đổi trong bảng cơ sở và các thay đổi được theo dõi sẽ được truyền tự động. Tuy nhiên, chỉ mục toàn văn bản được cập nhật trong nền, do đó, những thay đổi lan truyền có thể không được phản ánh ngay lập tức trong chỉ mục .

Theo mặc định, SQL Server điền đầy đủ một chỉ mục toàn văn bản mới ngay khi được tạo. Tuy nhiên, một dân số đầy đủ có thể tiêu thụ một lượng tài nguyên đáng kể. Do đó, khi tạo chỉ mục toàn văn bản trong thời kỳ cao điểm, cách tốt nhất là trì hoãn toàn bộ dân số cho đến khi hết giờ, đặc biệt nếu bảng cơ sở của chỉ mục toàn văn bản lớn. Tuy nhiên, danh mục toàn văn bản mà chỉ mục thuộc về không thể sử dụng được cho đến khi tất cả các chỉ mục toàn văn bản của nó được điền.

Ngoài ra, hãy tham khảo Cải thiện hiệu suất của các chỉ mục toàn văn


Cảm ơn! Vấn đề tôi đang tìm hiểu là tại sao nó dường như không cập nhật gì cho đến khi tôi tự xây dựng lại chỉ mục. Không chắc nó có liên quan hay không nhưng cơ sở dữ liệu dường như có vấn đề này nhất là cơ sở dữ liệu cũng đang được nhân đôi.
MetaGuru

Issue I am looking at is why it doesn't seem to update at all until I manually rebuild the index.bạn đã đặt nó theo những gì tôi đã chỉ ra Nếu có nhiều thay đổi, thì sẽ mất một thời gian, kể từ khiThe full-text index is updated in the background, however, so propagated changes might not be reflected immediately in the index.
Kin Shah

vâng tôi đã kiểm tra các địa điểm bạn đã hiển thị và nó được định cấu hình chính xác như trong ví dụ của bạn ... thật kỳ lạ mặc dù lần cuối cùng nhật ký nói rằng chỉ số này được cập nhật cách đây một thời gian, thậm chí vài tuần, so với lần cuối hàng mới được thêm vào .. Nó sẽ chạy khi các hàng mới được THÊM theo điều này phải không?
MetaGuru

1
Có .. Tôi đã kiểm tra và sau đó đăng dưới dạng câu trả lời.
Kin Shah

1

Vì một số lý do, trình lập chỉ mục toàn văn bản đã ngừng tự động cho một trong các cơ sở dữ liệu SQL 2012 của tôi sau khi bản sao cơ sở dữ liệu Nhóm khả dụng thứ cấp của tôi tiếp quản và trở thành bản sao chính.

Sau khi xóa Chỉ mục toàn văn bản và tạo lại nó trên bảng với tính năng tự động điền vào, nó bắt đầu tự động trở lại. Tôi đã sử dụng SQL Management Studio và trình hướng dẫn tạo Toàn văn bản để tạo lại chỉ mục.

Tôi đã lo lắng về việc mất bao lâu để chạy một chỉ mục đầy đủ của dữ liệu. Tôi đã rất ngạc nhiên khi chỉ mất khoảng 5 phút để giới thiệu lại 3 cột văn bản từ một bảng có 547619 bản ghi.

Cài đặt theo dõi thay đổi cấp độ Bảng được đề cập trong câu hỏi vẫn bị tắt. Vì vậy, theo dõi thay đổi Chỉ mục toàn văn bản chắc chắn khác với cài đặt theo dõi thay đổi Bảng. Bạn KHÔNG cần phải bật tính năng theo dõi thay đổi bảng để Theo dõi thay đổi lập chỉ mục toàn văn bản và Lập chỉ mục toàn văn bản tự động hoạt động.

Chạy truy vấn sau từ cơ sở dữ liệu sẽ tiết lộ lần cuối cùng trình chỉ mục văn bản đầy đủ của bạn chạy thu thập dữ liệu.

  SELECT  * FROM sys.fulltext_indexes

Khi tự động bật được bật, crawl_end_date sẽ thay đổi sau khi bạn chèn dữ liệu vào bảng.

Ngoài ra, bạn sẽ lưu ý rằng khi bạn chạy truy vấn sử dụng chỉ mục toàn văn, nó sẽ hiển thị dữ liệu mới nhất:

  select TOP 10 * from YOURDATATABLE where contains((YOUR_indexed_column),'YOURSEARCHTERM') order by YOURPRIMARYKEYCOLUMN desc

Tài liệu tham khảo bổ sung:

Bài viết mô tả các phương pháp khác nhau của Dân số Tìm kiếm Toàn văn bản: https://msdn.microsoft.com/en-us/l Library / ms142575% 28v = sql.100% 29.aspx

Thông tin về truy vấn bảng được lập chỉ mục toàn văn bản: https://technet.microsoft.com/en-us/l Library / ms142571 (v = sql.110) .aspx # query

Bài viết về Kiến trúc tìm kiếm toàn văn bản: https://technet.microsoft.com/en-us/l Library / ms142571 (v = sql.110) .aspx # arch architecture

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.