Submit a ticketCall us

AnnouncementsFace your biggest database issues head-on

Our new eCourse helps you navigate SQL Server performance blocks by teaching you how to recognize and deal with the three DBA Disruptors: Performance Hog, Blame Shifter, and Query Blocker. Register today to learn how to defend your environment and fend off menacing disruptions.

Register for your free eCourse.

Home > Success Center > Database Performance Analyzer (DPA) > DPA - Knowledgebase Articles > Instance monitor stops due to a duplicate key object on the CONSPA table

Instance monitor stops due to a duplicate key object on the CONSPA table

Updated July 24, 2017

Overview

The following error is displayed after an instance stops monitoring in DPA:

Duplicate Key in object 'ignite.CONSPA_X'. The duplicate key value is ('XXXXXXX, Y)

Environment

All DPA versions

Cause 

DPA uses the CONSPT table to determine if there are any records of the plan. If it is not found in the table, it is flagged for insertion.

Resolution

The results of the following query return records that already have plan data in CONSPH and CONSPA, which indicates what DPA is trying to insert as duplicate keys.

  1. Create a backup of your DPA repository.
  2. Run the following statement to determine if there are any records with plan data in CONSPH or CONSPA. Replace <X> with the instance ID that has the issue in COND.
    select a.PLAN_HASH_VALUE, 
           h.PLAN_HASH_VALUE as 'CONSPH', 
           p.PLAN_HASH_VALUE as 'CONSPT'
      from conspa_<X> a
      left outer join consph_<X> h 
                   on h.PLAN_HASH_VALUE = a.PLAN_HASH_VALUE
      left outer join conspt_<X> p 
                   on p.PLAN_HASH_VALUE = a.PLAN_HASH_VALUE
    where h.PLAN_HASH_VALUE is null
        or p.PLAN_HASH_VALUE is null
    ;
    

    To copy the query, move your mouse over it and click the View Source icon in the upper-right corner.

    The query above should return 0 rows.

  3. If any rows are returned, run the following query to delete them, replacing <X> with the instance ID:
    delete from CONSPH_<X>
    where PLAN_HASH_VALUE IN
    (
    select a.PLAN_HASH_VALUE
      from CONSPA_<X> a
      left outer join CONSPH_<X> h 
                   on h.PLAN_HASH_VALUE = a.PLAN_HASH_VALUE
      left outer join CONSPT_<X> p 
                   on p.PLAN_HASH_VALUE = a.PLAN_HASH_VALUE
    where h.PLAN_HASH_VALUE is null
        or p.PLAN_HASH_VALUE is null
    )
    ;
    
    delete from CONSPA_<X>
    where PLAN_HASH_VALUE IN
    (
    select a.PLAN_HASH_VALUE
      from CONSPA_<X> a
      left outer join CONSPH_<X> h 
                   on h.PLAN_HASH_VALUE = a.PLAN_HASH_VALUE
      left outer join CONSPT_<X> p 
                   on p.PLAN_HASH_VALUE = a.PLAN_HASH_VALUE
    where h.PLAN_HASH_VALUE is null
        or p.PLAN_HASH_VALUE is null
    )
    ;
    
  4. Restart DPA and the Ignite PI Server service.
 

 

Last modified

Tags

Classifications

Public
/*]]>*/