Applies ToProject Server 2010

Symptomen

Het aantal records in tabel schaduw die worden gegenereerd in een toename van het veld ondernemingsmarkeringen snel in Microsoft Project Server 2010. Dit probleem leidt tot verlaagde prestaties.

Oplossing

Dit probleem oplossen door de volgende hotfix-pakket van toepassing:

Beschrijving van het hotfixpakket voor Project Server 2010 (Pjsrvwfe-x-none.msp) 2597138 : 28 februari 2012

Meer informatie

Deze hotfix beheert het aantal records in tabel schaduw, zodat het aantal records niet te veel groter. Elke keer dat u wilt openen of opslaan in een projectplan in Project Professional nadat u de hotfix op de Project-server toepassen, de schaduw tabelrecords die relevant voor het project zijn worden opgeschoond. Als u opruimen van records in de tabel schaduw in bulk wilt, kunt u het volgende script gebruiken. Voordat u het script uitvoert, moet u de volgende punten te lezen:

  • Maak een reservekopie van de database van Project server voordat u het script uitvoert.

  • Stop de wachtrijservice onverwachte database-inhoud om problemen te voorkomen, op de Project application servers wanneer er geen activiteit op de servers voor enkele uren is.

  • Het script in een ontwikkelomgeving valideren met behulp van de huidige back-up van de database van Project server.

  • Tijd, hoe lang het duurt om te voltooien van het script in de ontwikkelomgeving. De tijd die nodig is voor het voltooien van het script verwijderen is afhankelijk van de SQL-server en het nummer van de records die moeten worden verwijderd. Zorg ervoor dat het script wordt voltooid binnen de geplande tijd.

Als u wilt opruimen schaduw tabelrecords in bulk, volg deze stappen:

  1. Voer het volgende script in het concept en de gepubliceerde database en de vrije schijfruimte in de databases opnieuw:

    --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. Voer het volgende script op de gepubliceerde database nadat u het script uit stap 1 op het concept en de gepubliceerde database uitvoeren:

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

Status

Microsoft heeft bevestigd dat dit probleem kan optreden in de Microsoft-producten die worden vermeld in de sectie 'Van toepassing op'.

Meer hulp nodig?

Meer opties?

Verken abonnementsvoordelen, blader door trainingscursussen, leer hoe u uw apparaat kunt beveiligen en meer.

Community's helpen u vragen te stellen en te beantwoorden, feedback te geven en te leren van experts met uitgebreide kennis.