2010-05-20 12 views
7

तो मेरे पास एक वेब ऐप है जो .NET 3.5 को SQL 2005 बॉक्स से कनेक्ट किया गया है।पूर्ण पाठ अनुक्रमणिका को छोड़ने और पुनर्निर्माण की आवश्यकता है - क्यों?

हम प्रत्येक 2 सप्ताह में निर्धारित निर्धारित करते हैं।

250 में से 14 टेबल पूर्ण पाठ अनुक्रमित हैं।

प्रत्येक रिलीज के बाद, लेकिन कुछ बहुत अधिक, इंडेक्स बाहर निकलते हैं। उनके पास डेटा है, लेकिन जब हम उन्हें फ्रंट एंड या एसक्यूएल एंटरप्राइज़ से खोजने का प्रयास करते हैं तो हमें टाइमआउट/हैंग मिलता है।

हमारे पास एक ऐसी स्क्रिप्ट है जो इंडेक्स को अक्षम करती है, उन्हें छोड़ देती है, कैटलॉग हटा देती है और फिर इंडेक्स बनाती है। यह 100 से 99 बार समस्या को हल करता है। और दूसरी बार, हम फिर से स्क्रिप्ट चलाते हैं और यह सब काम करता है

हमने पूर्णतया अनुक्रमणिका को पुनर्निर्माण करने का प्रयास किया है, लेकिन यह समस्या को ठीक नहीं करता है।

मेरा सवाल है कि हमें ऐसा क्यों करना है? इंडेक्स को सॉर्ट करने के लिए हम क्या कर सकते हैं?

यहाँ एसक्यूएल सर्वर में पूर्ण पाठ अनुक्रमण विफलताओं 2005 सूचियों 6 संभावित कारणों पर,

IF EXISTS (SELECT * FROM sys.fulltext_indexes fti WHERE fti.object_id = OBJECT_ID(N'[dbo].[Address]')) 
ALTER FULLTEXT INDEX ON [dbo].[Address] DISABLE 
GO 
IF EXISTS (SELECT * FROM sys.fulltext_indexes fti WHERE fti.object_id = OBJECT_ID(N'[dbo].[Address]')) 
DROP FULLTEXT INDEX ON [dbo].[Address] 

GO 



IF EXISTS (SELECT * FROM sysfulltextcatalogs ftc WHERE ftc.name = N'DbName.FullTextCatalog') 
DROP FULLTEXT CATALOG [DbName.FullTextCatalog] 
GO 




     -- may need this line if we get an error 
     BACKUP LOG SMS2 WITH TRUNCATE_ONLY 

     CREATE FULLTEXT CATALOG [DbName.FullTextCatalog] ON FILEGROUP [FullTextCatalogs] 
     IN PATH N'F:\Data' 
     AS DEFAULT 
     AUTHORIZATION [dbo] 



CREATE FULLTEXT INDEX ON [Address](CommonPlace LANGUAGE 'ENGLISH') 
    KEY INDEX PK_Address 
      ON [DbName.FullTextCatalog] 
    WITH 
      CHANGE_TRACKING AUTO 
go 
+0

क्या 14 टेबल गिराए जा रहे हैं और पुनः लोड किए गए हैं? –

+0

नहीं, कभी-कभी उन्हें कुछ डेटा बदल दिया जाता है लेकिन उससे अधिक नहीं। संग्रहीत प्रोसेस, ट्रिगर्स और फ़ंक्शन को छोड़ दिया गया और फिर से बनाया गया। रिलीज के हिस्से के रूप में एसक्यूएल मल्टी स्क्रिप्ट के साथ –

+0

ऐसा लगता है कि आपको किसी प्रकार की समस्या हो सकती है – Scozzard

उत्तर

2

This MSDN article स्क्रिप्ट का एक सा है। मैं यहां संक्षेप में हूं - विवरण के लिए पूरा लेख देखें।

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

लेख का निष्कर्ष है:

आप किसी भी महत्वपूर्ण पूर्ण-पाठ अनुक्रमणिका जनसंख्या आपरेशन के अंत में क्रॉल लॉग को देखने चाहिए, या जब आप पाते हैं कि आबादी पूर्ण नहीं हुआ।

संबंधित मुद्दे