Преминаване към основното съдържание
Поддръжка
Влизане с Microsoft
Влезте или създайте акаунт.
Здравейте,
Изберете друг акаунт.
Имате няколко акаунта
Изберете акаунта, с който искате да влезете.

Симптоми

Броят на скрити записи в таблицата, които се генерират в предприятие флаг поле се разширява бързо в Microsoft Project Server 2010. Този проблем се причинява проблеми с производителността.

Решение

За да разрешите този проблем, приложете следния пакет с актуални корекции:

2597138 описание на пакета с актуални корекции за Project Server 2010 (Pjsrvwfe-x-none.msp): 28 февруари 2012 г.

Допълнителна информация

Тази актуална корекция управлява броя на скрити записи в таблицата, така че броят на записите се увеличава твърде много. Всеки път, когато отворите или запишете план на проект в Project Professional след прилагането на актуалната корекция на Project server, сянка записи в таблицата, са свързани с проекта се изчистват. Ако искате да почистите сянка таблицата записи в големи обеми, можете да използвате следния скрипт. Преди да изпълните скрипта, уверете се, че сте прочели следното:

  • Направете резервно копие на базата данни на Project server, преди да стартирате скрипта.

  • За да избегнете неочаквана база данни на съдържанието проблеми, спрете услугата опашката на Project сървъри, когато не е имало дейност на сървърите за няколко часа.

  • Проверка на скрипта в среда за разработка с помощта на текущото архивиране на базата данни на Project server.

  • Време колко време е необходимо да изпълните скрипта в развойна среда. Времето, необходимо за изпълнение на скрипт за изтриване зависи от SQL server и броя на записите, които трябва да бъдат премахнати. Уверете се, че скрипта приключи в определеното време.

За да изчистите сянка таблицата записи в големи обеми, изпълнете следните стъпки:

  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, изброени в раздела "Отнася се за".

Нуждаете ли се от още помощ?

Искате ли още опции?

Разгледайте ползите от абонамента, прегледайте курсовете за обучение, научете как да защитите устройството си и още.

Общностите ви помагат да задавате и отговаряте на въпроси, да давате обратна връзка и да получавате информация от експерти с богати знания.

Беше ли полезна тази информация?

Доколко сте доволни от качеството на езика?
Какво е повлияло на вашия потребителски опит?
Като натиснете „Подаване“, вашата обратна връзка ще се използва за подобряване на продуктите и услугите на Microsoft. Вашият ИТ администратор ще може да събира тези данни. Декларация за поверителност.

Благодарим ви за обратната връзка!

×