छाया तालिका अभिलेखों की संख्या तेज़ी से बढ़ाता है जब Project Server 2010 में प्रदर्शन समस्याएँ उत्पन्न हो सकती

लागू: Project Server 2010

लक्षण


छाया तालिका अभिलेख जो किसी एंटरप्राइज़ ध्वज फ़ील्ड बढ़ाता है Microsoft Project Server 2010 में जल्दी में उत्पन्न की संख्या। इस समस्या के प्रदर्शन संबंधी समस्याओं के कारण।

समाधान


इस समस्या को हल करने के लिए, निम्न हॉटफ़िक्स पैकेज पर लागू करें:
2597138 Project Server 2010 हॉटफिक्स पैकेज़ (Pjsrvwfe-x-none.msp) का विवरण: 28 फरवरी, 2012


अधिक जानकारी


जिससे कि रिकॉर्ड की संख्या बहुत काफी बढ़ा नहीं छाया तालिका अभिलेखों की संख्या इस हॉटफिक्स प्रबंधित करता है। प्रत्येक बार जो आप खोल या प्रोजेक्ट सर्वर पर, हॉटफिक्स को लागू करने के बाद कोई प्रोजेक्ट योजना प्रोजेक्ट प्रोफेशनल में सहेजें छाया तालिका अभिलेख जो प्रोजेक्ट के लिए प्रासंगिक हैं सफ़ाई है। छाया तालिका अभिलेख भारी मात्रा में ऊपर साफ़ करना चाहते हैं, तो निम्न स्क्रिप्ट का उपयोग कर सकते हैं। आप स्क्रिप्ट को चलाने से पहले, सुनिश्चित करें कि आप निम्न बिंदु पढ़:
 
  • आप स्क्रिप्ट को चलाने से पहले Project server डेटाबेस का बैकअप बनाएँ।
  • आ गई जब कोई गतिविधि सर्वर्स पर कई घंटे के लिए अप्रत्याशित डेटाबेस सामग्री समस्याओं से बचने के लिए, पंक्ति सेवा प्रोजेक्ट अनुप्रयोग सर्वर पर रोकें।
  • वर्तमान प्रोजेक्ट सर्वर डेटाबेस का बैकअप का उपयोग करके स्क्रिप्ट एक विकास वातावरण में मान्य है।
  • कितने समय तक इसे स्क्रिप्ट में विकास परिवेश को पूरा करने के लिए लेता है समय। स्क्रिप्ट को हटाने को पूरा करने के लिए आवश्यक है जो SQL सर्वर और निकाला जा करने के लिए उन रिकॉर्ड्स की संख्या पर निर्भर करता है। सुनिश्चित करें कि स्क्रिप्ट नियोजित समय के अंदर पूरा कर लिया है।
छाया तालिका अभिलेख भारी मात्रा में ऊपर साफ करने के लिए, निम्न चरणों का पालन करें:
  1. दोनों प्रारूप और प्रकाशित डेटाबेस पर निम्न स्क्रिप्ट चलाएँ, और डेटाबेसों में रिक्त स्थान वापस प्राप्त:
    --Clean up       MSP_TASK_CUSTOM_FIELD_VALUES_SHADOW 
    IF object_id('tempdb..#TempTaskCFShadow') IS NOT NULL
    BEGIN
    drop table #TempTaskCFShadow
    END

    CREATE table #TempTaskCFShadow (pid uniqueidentifier, tid uniqueidentifier, revCount int, mdpid uniqueidentifier)

    INSERT #TempTaskCFShadow (pid, tid, revCount, mdpid)
    SELECT PROJ_UID, TASK_UID, MAX(DELETED_REV_COUNTER), MD_PROP_UID
    FROM MSP_TASK_CUSTOM_FIELD_VALUES_SHADOW
    GROUP BY PROJ_UID , TASK_UID, MD_PROP_UID

    DELETE
    FROM MSP_TASK_CUSTOM_FIELD_VALUES_SHADOW
    FROM MSP_TASK_CUSTOM_FIELD_VALUES_SHADOW as originalTable, #TempTaskCFShadow AS newtable
    where originalTable.MD_PROP_UID = newtable.mdpid AND
    originalTable.PROJ_UID = newtable.pid AND
    originalTable.TASK_UID = newtable.tid AND
    originalTable.DELETED_REV_COUNTER <> newtable.revCount

    DROP TABLE #TempTaskCFShadow

    --Clean up MSP_ASSN_CUSTOM_FIELD_VALUES_SHADOW
    IF object_id('tempdb..#TempAssnCFShadow') IS NOT NULL
    BEGIN
    drop table #TempAssnCFShadow
    END

    CREATE table #TempAssnCFShadow (pid uniqueidentifier, asid uniqueidentifier, revCount int, mdpid uniqueidentifier)

    INSERT #TempAssnCFShadow (pid, asid, revCount, mdpid)
    SELECT PROJ_UID, assn_uid, MAX(DELETED_REV_COUNTER), MD_PROP_UID
    FROM MSP_ASSN_CUSTOM_FIELD_VALUES_SHADOW
    GROUP BY PROJ_UID , ASSN_UID, MD_PROP_UID

    DELETE
    FROM MSP_ASSN_CUSTOM_FIELD_VALUES_SHADOW
    FROM MSP_ASSN_CUSTOM_FIELD_VALUES_SHADOW as originalTable, #TempAssnCFShadow AS newtable
    where originalTable.MD_PROP_UID = newtable.mdpid AND
    originalTable.PROJ_UID = newtable.pid AND
    originalTable.ASSN_UID= newtable.asid AND
    originalTable.DELETED_REV_COUNTER <> newtable.revCount

    DROP TABLE #TempAssnCFShadow


    --Clean up MSP_PROJ_RES_CUSTOM_FIELD_VALUES_SHADOW
    IF object_id('tempdb..#TempProjResCFShadow') IS NOT NULL
    BEGIN
    drop table #TempProjResCFShadow
    END

    CREATE table #TempProjResCFShadow (pid uniqueidentifier, resid uniqueidentifier, revCount int, mdpid uniqueidentifier)

    INSERT #TempProjResCFShadow (pid, resid, revCount, mdpid)
    SELECT PROJ_UID, RES_UID, MAX(DELETED_REV_COUNTER), MD_PROP_UID
    FROM MSP_PROJ_RES_CUSTOM_FIELD_VALUES_SHADOW
    GROUP BY PROJ_UID , RES_UID, MD_PROP_UID

    DELETE
    FROM MSP_PROJ_RES_CUSTOM_FIELD_VALUES_SHADOW
    FROM MSP_PROJ_RES_CUSTOM_FIELD_VALUES_SHADOW as originalTable, #TempProjResCFShadow AS newtable
    where originalTable.MD_PROP_UID = newtable.mdpid AND
    originalTable.PROJ_UID = newtable.pid AND
    originalTable.RES_UID = newtable.resid AND
    originalTable.DELETED_REV_COUNTER <> newtable.revCount

    DROP TABLE #TempProjResCFShadow


    --Clean up MSP_PROJ_CUSTOM_FIELD_VALUES_SHADOW
    IF object_id('tempdb..#TempProjCFShadow') IS NOT NULL
    BEGIN
    drop table #TempProjCFShadow
    END

    CREATE table #TempProjCFShadow (pid uniqueidentifier, revCount int, mdpid uniqueidentifier)

    INSERT #TempProjCFShadow (pid, revCount, mdpid)
    SELECT PROJ_UID, MAX(DELETED_REV_COUNTER), MD_PROP_UID
    FROM MSP_PROJ_CUSTOM_FIELD_VALUES_SHADOW
    GROUP BY PROJ_UID , MD_PROP_UID

    DELETE
    FROM MSP_PROJ_CUSTOM_FIELD_VALUES_SHADOW
    FROM MSP_PROJ_CUSTOM_FIELD_VALUES_SHADOW as originalTable, #TempProjCFShadow AS newtable
    where originalTable.MD_PROP_UID = newtable.mdpid AND
    originalTable.PROJ_UID = newtable.pid AND
    originalTable.DELETED_REV_COUNTER <> newtable.revCount

    DROP TABLE #TempProjCFShadow
  2. आप दोनों प्रारूप और प्रकाशित डेटाबेस पर चरण 1 से स्क्रिप्ट चलाने के बाद प्रकाशित डेटाबेस पर निम्न स्क्रिप्ट चलाएँ:
    --Clean up MSP_RES_CUSTOM_FIELD_VALUES_SHADOW

    IF object_id('tempdb..#TempResCFShadow') IS NOT NULL
    BEGIN
    drop table #TempResCFShadow
    END

    CREATE table #TempResCFShadow (resid uniqueidentifier, revCount int, mdpid uniqueidentifier)

    INSERT #TempResCFShadow (resid, revCount, mdpid)
    SELECT RES_UID, MAX(DELETED_REV_COUNTER), MD_PROP_UID
    FROM MSP_RES_CUSTOM_FIELD_VALUES_SHADOW
    GROUP BY RES_UID, MD_PROP_UID

    DELETE
    FROM MSP_RES_CUSTOM_FIELD_VALUES_SHADOW
    FROM MSP_RES_CUSTOM_FIELD_VALUES_SHADOW as originalTable, #TempResCFShadow AS newtable
    where originalTable.MD_PROP_UID = newtable.mdpid AND
    originalTable.RES_UID = newtable.resid AND
    originalTable.DELETED_REV_COUNTER <> newtable.revCount

    DROP TABLE #TempResCFShadow


स्थिति


Microsoft ने पुष्टि की है कि यह "इन पर लागू" खण्ड में सूचीबद्ध Microsoft उत्पादों में एक समस्या है.