Applies ToProject Server 2010

Problembeschreibung

Die Anzahl der Schatten Datensätze, die in Microsoft Project Server 2010 Anstieg Feld ein Enterprise-Attribut generiert werden. Dieses Problem beeinträchtigt die Leistung.

Problemlösung

Um dieses Problem zu beheben, wenden Sie folgendes Hotfix-Paket an:

2597138 Beschreibung des Project Server 2010-Hotfixpaket (Pjsrvwfe-X-none.msp): 28. Februar 2012

Weitere Informationen

Dieser Hotfix verwaltet die Anzahl der Schatten Datensätze so, dass die Anzahl von Datensätzen nicht zu viel. Jedes Mal, die Sie öffnen oder speichern einen Projektplan in Project Professional nach Hotfixes in Projektserver die Datensätze der Schatten für das Projekt sind werden bereinigt. Wenn Sie Datensätze der Schatten in loser bereinigen möchten, können Sie das folgende Skript. Stellen Sie das Skript ausführen, lesen Sie die folgenden Punkte:

  • Erstellen Sie eine Sicherungskopie der Project Server-Datenbank vor dem Ausführen des Skripts.

  • Um unerwartete Datenbank Inhalte zu vermeiden, Beenden der Warteschlange auf den Anwendungsservern Projekt bei keine Aktivität auf dem Server mehrere Stunden.

  • Überprüfen des Skripts in einer Umgebung mit der aktuellen Sicherung der Project Server-Datenbank.

  • Wie lange dauert, führen Sie das Skript in der Zeit. Die Zeit, die erforderlich ist, um das Skript löschen abgeschlossen hängt von SQL Server und die Anzahl der Datensätze, die entfernt werden. Stellen Sie sicher, dass das Skript innerhalb der vorgesehenen Zeit abgeschlossen ist.

Um die Datensätze der Schatten in loser bereinigen, gehen Sie folgendermaßen vor:

  1. Führen Sie das folgende Skript auf dem Entwurf und der veröffentlichten Datenbank und freien Speicherplatz in der Datenbank:

    --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. Führen Sie das folgende Skript in der Datenbank veröffentlicht, nachdem Sie das Skript in Schritt 1 auf dem Entwurf und der veröffentlichten Datenbank ausführen:

    --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 hat bestätigt, dass es sich um ein Problem bei den Microsoft-Produkten handelt, die im Abschnitt „Eigenschaften“ aufgeführt sind.

Benötigen Sie weitere Hilfe?

Möchten Sie weitere Optionen?

Erkunden Sie die Abonnementvorteile, durchsuchen Sie Trainingskurse, erfahren Sie, wie Sie Ihr Gerät schützen und vieles mehr.

In den Communities können Sie Fragen stellen und beantworten, Feedback geben und von Experten mit umfassendem Wissen hören.