SQL Queries - CAST Central Base - Queries on Objects - How to check if the objects present in the previous snapshot but not current snapshot are part of one of the Transactions in previous snapshot

Purpose of Query

To check if the objects present in the previous snapshot but not current snapshot are part of one of the Transactions in previous snapshot.  The following query can be run on the central repository.

Applicable CAST Version

ReleaseYes/No
8.3.x
8.2.x
8.1.x
8.0.x

Applicable RDBMS

RDBMSYes/No
Oracle Server
Microsoft SQL Server
CSS2

Query for CSS

SELECT count_technical_delta,
       count_functional_technical_delta 
FROM   (SELECT Count (previous_run.object_id) AS count_technical_delta
        FROM   (SELECT doi.snapshot_id,
                       doi.object_id,
                       dob.object_full_name
                FROM   dss_objects dob
                       JOIN dss_object_info doi
                         ON dob.object_id = doi.object_id
                WHERE  doi.snapshot_id = <current run>
                       AND doi.object_checksum != 0) current_run
               RIGHT JOIN (SELECT doi.snapshot_id,
                                  doi.object_id,
                                  dob.object_full_name
                           FROM   dss_objects dob
                                  JOIN dss_object_info doi
                                    ON dob.object_id = doi.object_id
                           WHERE  doi.snapshot_id = <previous run>
                                  AND doi.object_checksum != 0)previous_run
                       ON current_run.object_id = previous_run.object_id
        WHERE  current_run.object_id IS NULL) SET_technical_delta,
       (SELECT Count (OI.object_id) AS count_functional_technical_delta
        FROM   dss_object_info OI,
               dss_link_info L
        WHERE  L.link_type_id BETWEEN 11002 AND 11006
               AND OI.object_id = L.next_object_id
               AND OI.snapshot_id = L.snapshot_id
               AND OI.snapshot_id = <current run>
               AND OI.object_id IN (SELECT previous_run.object_id
                                    FROM   (SELECT doi.snapshot_id,
                                                   doi.object_id,
                                                   dob.object_full_name
                                            FROM   dss_objects dob
                                                   JOIN dss_object_info doi
                                                     ON dob.object_id =
                                                        doi.object_id
                                            WHERE  doi.snapshot_id = <current run>
                                                   AND doi.object_checksum != 0)
                                           current_run
                                           RIGHT JOIN (SELECT doi.snapshot_id,
                                                              doi.object_id,
dob.object_full_name
FROM   dss_objects dob
JOIN dss_object_info doi
  ON dob.object_id =
     doi.object_id
WHERE  doi.snapshot_id = <prevvious run>
AND doi.object_checksum
    != 0)
previous_run
ON current_run.object_id =
previous_run.object_id
WHERE  current_run.object_id IS NULL))
SET_functional_technical_delta

Query result example

–10; 10

Query result interpretation

The query returns

  1. count1 = The count of objects that are part of previous run but not current run

  2. count2 = The count of objects that are part of previous run but not current run and was part of the functional area of the application

Query for Oracle

SELECT count_technical_delta,
       count_functional_technical_delta 
FROM   (SELECT Count (previous_run.object_id) AS count_technical_delta
        FROM   (SELECT doi.snapshot_id,
                       doi.object_id,
                       dob.object_full_name
                FROM   dss_objects dob
                       JOIN dss_object_info doi
                         ON dob.object_id = doi.object_id
                WHERE  doi.snapshot_id = <current run>
                       AND doi.object_checksum != 0) current_run
               RIGHT JOIN (SELECT doi.snapshot_id,
                                  doi.object_id,
                                  dob.object_full_name
                           FROM   dss_objects dob
                                  JOIN dss_object_info doi
                                    ON dob.object_id = doi.object_id
                           WHERE  doi.snapshot_id = <previous run>
                                  AND doi.object_checksum != 0)previous_run
                       ON current_run.object_id = previous_run.object_id
        WHERE  current_run.object_id IS NULL) SET_technical_delta,
       (SELECT Count (OI.object_id) AS count_functional_technical_delta
        FROM   dss_object_info OI,
               dss_link_info L
        WHERE  L.link_type_id BETWEEN 11002 AND 11006
               AND OI.object_id = L.next_object_id
               AND OI.snapshot_id = L.snapshot_id
               AND OI.snapshot_id = <current run>
               AND OI.object_id IN (SELECT previous_run.object_id
                                    FROM   (SELECT doi.snapshot_id,
                                                   doi.object_id,
                                                   dob.object_full_name
                                            FROM   dss_objects dob
                                                   JOIN dss_object_info doi
                                                     ON dob.object_id =
                                                        doi.object_id
                                            WHERE  doi.snapshot_id = <current run>
                                                   AND doi.object_checksum != 0)
                                           current_run
                                           RIGHT JOIN (SELECT doi.snapshot_id,
                                                              doi.object_id,
dob.object_full_name
FROM   dss_objects dob
JOIN dss_object_info doi
  ON dob.object_id =
     doi.object_id
WHERE  doi.snapshot_id = <prevvious run>
AND doi.object_checksum
    != 0)
previous_run
ON current_run.object_id =
previous_run.object_id
WHERE  current_run.object_id IS NULL))
SET_functional_technical_delta

Query result example

–10; 10

Query result interpretation

The query returns

  1. count1 = The count of objects that are part of previous run but not current run

  2. count2 = The count of objects that are part of previous run but not current run and was part of the functional area of the application

Query for SQL server

SELECT count_technical_delta,
       count_functional_technical_delta 
FROM   (SELECT Count (previous_run.object_id) AS count_technical_delta
        FROM   (SELECT doi.snapshot_id,
                       doi.object_id,
                       dob.object_full_name
                FROM   dss_objects dob
                       JOIN dss_object_info doi
                         ON dob.object_id = doi.object_id
                WHERE  doi.snapshot_id = <current run>
                       AND doi.object_checksum != 0) current_run
               RIGHT JOIN (SELECT doi.snapshot_id,
                                  doi.object_id,
                                  dob.object_full_name
                           FROM   dss_objects dob
                                  JOIN dss_object_info doi
                                    ON dob.object_id = doi.object_id
                           WHERE  doi.snapshot_id = <previous run>
                                  AND doi.object_checksum != 0)previous_run
                       ON current_run.object_id = previous_run.object_id
        WHERE  current_run.object_id IS NULL) SET_technical_delta,
       (SELECT Count (OI.object_id) AS count_functional_technical_delta
        FROM   dss_object_info OI,
               dss_link_info L
        WHERE  L.link_type_id BETWEEN 11002 AND 11006
               AND OI.object_id = L.next_object_id
               AND OI.snapshot_id = L.snapshot_id
               AND OI.snapshot_id = <current run>
               AND OI.object_id IN (SELECT previous_run.object_id
                                    FROM   (SELECT doi.snapshot_id,
                                                   doi.object_id,
                                                   dob.object_full_name
                                            FROM   dss_objects dob
                                                   JOIN dss_object_info doi
                                                     ON dob.object_id =
                                                        doi.object_id
                                            WHERE  doi.snapshot_id = <current run>
                                                   AND doi.object_checksum != 0)
                                           current_run
                                           RIGHT JOIN (SELECT doi.snapshot_id,
                                                              doi.object_id,
dob.object_full_name
FROM   dss_objects dob
JOIN dss_object_info doi
  ON dob.object_id =
     doi.object_id
WHERE  doi.snapshot_id = <prevvious run>
AND doi.object_checksum
    != 0)
previous_run
ON current_run.object_id =
previous_run.object_id
WHERE  current_run.object_id IS NULL))
SET_functional_technical_delta

Query result example

–10; 10

Query result interpretation

The query returns

  1. count1 = The count of objects that are part of previous run but not current run

  2. count2 = The count of objects that are part of previous run but not current run and was part of the functional area of the application

Notes/comments

Related Pages