क्या ट्रैक परिवर्तन के साथ एक पूर्ण-पाठ कैटलॉग: ऑटो स्वचालित रूप से अपडेट होगा यदि उस तालिका के लिए परिवर्तन ट्रैकिंग सक्षम नहीं है?


12

मेरे पास यह डेटाबेस तालिका है जो पूर्ण-पाठ अनुक्रमणिका को अप-टू-डेट रखने के लिए मान ली गई है। हालाँकि, मैं इसे बिल्कुल भी नहीं देख रहा हूँ (लॉग में कोई त्रुटि नहीं है क्योंकि अंतिम लॉग जो मैं देख रहा था जब मैंने इसे मैन्युअल रूप से चालू किया था)।

यहाँ मैं देख रहा हूँ ...

पूर्ण-पाठ कैटलॉग गुण

लेकिन मेज पर ही ...

यहाँ छवि विवरण दर्ज करें

क्या ऐसा हो सकता है कि यह अपने आप क्यों नहीं हो रहा है?


स्पष्टता के लिए, आप किस लॉग का उल्लेख कर रहे हैं?
माइक ज़्लांस्की

@ मइकेआज़लान्स्की ने इसका पूरा पाठ लॉग किया है, जिसे(..\MSSQL\Log\SQLFT*)
किन शाह

जवाबों:


14

आप गलत जगह देख रहे हैं।

आपको नीचे की तरह जांचना होगा:

यहाँ छवि विवरण दर्ज करें

यहाँ छवि विवरण दर्ज करें

टी-एसक्यूएल का उपयोग ..

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

एक बार करने के बाद, आप अंतिम आबादी वाले डेटाटाइम की स्थिति की जांच कर सकते हैं

-- 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

यहाँ छवि विवरण दर्ज करें

कुछ डेटा डालें ..

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

अब आप देखेंगे कि FT कैटलॉग अपडेटेड है।

यहाँ छवि विवरण दर्ज करें

लॉग में ( ..\MSSQL\Log\SQLFT*) भी, नीचे संदेश होगा ...

2015-12-14 12: 36: 51.29 spid50s सूचनात्मक: पूर्ण-पाठ ऑटो जनसंख्या तालिका या अनुक्रमित दृश्य '[AdventureWorks2012] के लिए पूरा किया। 5 ')। संसाधित किए गए दस्तावेज़ों की संख्या: 1. दस्तावेजों की संख्या विफल रही: 0. दस्तावेजों की संख्या जो पीछे हट जाएगी: 0।

से बोल :

डिफ़ॉल्ट रूप से, या यदि आप CHANGE_TRACKING AUTO निर्दिष्ट करते हैं, तो पूर्ण-पाठ इंजन पूर्ण-पाठ अनुक्रमणिका पर स्वचालित जनसंख्या का उपयोग करता है। प्रारंभिक पूर्ण आबादी के पूरा होने के बाद, परिवर्तनों को ट्रैक टेबल में डेटा को संशोधित करने के रूप में ट्रैक किया जाता है, और ट्रैक किए गए परिवर्तनों को स्वचालित रूप से प्रचारित किया जाता है। पूर्ण-पाठ इंडेक्स को पृष्ठभूमि में अपडेट किया गया है, हालांकि, प्रचारित परिवर्तन को तुरंत इंडेक्स में परिलक्षित नहीं किया जा सकता है

डिफ़ॉल्ट रूप से, SQL सर्वर एक नया पूर्ण-पाठ इंडेक्स बनाता है जैसे ही यह बनाया जाता है। हालांकि, एक पूर्ण आबादी संसाधनों की एक महत्वपूर्ण राशि का उपभोग कर सकती है। इसलिए, पीक पीरियड्स के दौरान एक फुल-टेक्स्ट इंडेक्स बनाते समय, एक ऑफ-पीक समय तक पूरी आबादी को देरी करने के लिए अक्सर सबसे अच्छा अभ्यास होता है, खासकर अगर पूर्ण-टेक्स्ट इंडेक्स का बेस टेबल बड़ा हो। हालाँकि, पूर्ण-पाठ कैटलॉग, जिसके अंतर्गत अनुक्रमणिका उपयोग करने योग्य नहीं है, जब तक कि इसके सभी पूर्ण-पाठ अनुक्रमणिकाएँ पॉपुलेटेड नहीं हो जातीं।

इसके अलावा, फुल-टेक्स्ट इंडेक्स के प्रदर्शन में सुधार करने के लिए देखें


धन्यवाद! मैं जिस मुद्दे को देख रहा हूं, वह यह है कि जब तक मैं मैन्युअल रूप से सूचकांक को फिर से नहीं बनाता हूं, तब तक यह बिल्कुल भी अपडेट नहीं लगता है। यकीन नहीं है कि यह संबंधित है, लेकिन डेटाबेस है कि इस मुद्दे को होने लगता है सबसे एक है कि यह भी प्रतिबिंबित किया जा रहा है।
मेटागुरु

Issue I am looking at is why it doesn't seem to update at all until I manually rebuild the index.क्या आपने इसे दिखाया है जो मैंने दिखाया है। यदि बहुत अधिक परिवर्तन होते हैं, तो इसके कुछ समय लगने वाले हैं, क्योंकिThe full-text index is updated in the background, however, so propagated changes might not be reflected immediately in the index.
किन्न शाह

हाँ, मैंने आपके द्वारा दिखाए गए स्थानों की जाँच की और यह आपके उदाहरणों की तरह सही ढंग से कॉन्फ़िगर किया गया था ... अजीब बात है, हालांकि पिछली बार जब लॉग कहते हैं कि यह सूचकांक थोड़ी देर पहले अपडेट किया गया था, यहां तक ​​कि पिछली बार की तुलना में नई पंक्तियों को जोड़ा गया था। यह चलता है जब नई पंक्तियों को इस अधिकार के अनुसार जोड़ा जाता है?
मेटागुरु

1
हां .. मैंने परीक्षण किया और फिर उत्तर के रूप में पोस्ट किया।
परिजन शाह

1

किसी कारण से, मेरे द्वितीयक उपलब्धता समूह डेटाबेस प्रतिकृति को संभालने और प्राथमिक प्रतिकृति बनने के बाद, पूर्ण पाठ अनुक्रमणिका ने मेरे SQL 2012 डेटाबेस में से एक के लिए ऑटोप्रूफ़ करना बंद कर दिया।

फुल टेक्स्ट इंडेक्स को हटाने और ऑटो पॉप्युलेट के साथ टेबल पर इसे फिर से बनाने के बाद, यह फिर से ऑटोपॉपुलेट करना शुरू कर दिया। मैंने SQL प्रबंधन स्टूडियो और पूर्ण पाठ अनुक्रमणिका को फिर से बनाने के लिए विज़ार्ड बनाने का उपयोग किया।

मुझे इस बात की चिंता थी कि डेटा के पूर्ण अनुक्रमण को चलाने में कितना समय लगेगा। मुझे सुखद आश्चर्य हुआ कि केवल 547619 रिकॉर्ड्स के साथ टेबल से 3 टेक्स्ट कॉलम को रिवाइंड करने में लगभग 5 मिनट का समय लगा।

तालिका स्तर की परिवर्तन ट्रैकिंग सेटिंग्स को संदर्भित प्रश्न में अक्षम कर दिया गया। इसलिए पूर्ण पाठ सूचकांक परिवर्तन ट्रैकिंग निश्चित रूप से तालिका परिवर्तन ट्रैकिंग सेटिंग से अलग है। आपको काम करने के लिए पूर्ण पाठ अनुक्रमण परिवर्तन ट्रैकिंग और पूर्ण पाठ अनुक्रमण ऑटोपोप्युलेट के लिए तालिका परिवर्तन ट्रैकिंग सक्षम होने की आवश्यकता नहीं है।

डेटाबेस से निम्नलिखित क्वेरी चलाने से आपके पूर्ण पाठ अनुक्रमणिका के क्रॉल चलाने के अंतिम समय का पता चलेगा।

  SELECT  * FROM sys.fulltext_indexes

जब ऑटोपोलेट चालू होता है, तो तालिका में डेटा सम्मिलित करने के बाद क्रॉल_एंड_डेट को बदलना चाहिए।

इसके अलावा, आप ध्यान देंगे कि जब आप एक क्वेरी चलाते हैं जो पूर्ण पाठ सूचकांक का उपयोग करता है, तो यह नवीनतम डेटा दिखाएगा:

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

अतिरिक्त संदर्भ:

पूर्ण पाठ खोज जनसंख्या के विभिन्न तरीकों का वर्णन करने वाला लेख: https://msdn.microsoft.com/en-us/library/ms142575%28v=sql.100%29.aspx

एक पूर्ण पाठ अनुक्रमित तालिका के प्रश्न पर जानकारी: https://technet.microsoft.com/en-us/library/ms142571(v=sql.110).aspx#queries

पूर्ण पाठ खोज वास्तुकला पर लेख: https://technet.microsoft.com/en-us/library/ms142571(v=sql.110).aspx#altecture

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.