19.06.2013 Views

DB2 UDB for z/OS Version 8 Performance Topics - IBM Redbooks

DB2 UDB for z/OS Version 8 Performance Topics - IBM Redbooks

DB2 UDB for z/OS Version 8 Performance Topics - IBM Redbooks

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

The per<strong>for</strong>mance impact of Row Level Security on DELETE is there<strong>for</strong>e very similar to the<br />

per<strong>for</strong>mance impact on UPDATE.<br />

Utilities<br />

You need a valid SECLABEL and additional authorizations to run certain LOAD, UNLOAD,<br />

and REORG TABLESPACE jobs on tables that have multilevel security enabled. All other<br />

utilities check only <strong>for</strong> authorization to operate on the table space; they do not check <strong>for</strong><br />

row-level authorization and are there<strong>for</strong>e not impacted. Offline utilities such as DSN1COPY<br />

and DSN1PRNT do not impose Row Level Security and are also not impacted.<br />

At the time of writing this book, no actual per<strong>for</strong>mance studies have been undertaken to<br />

quantify the impact of Row Level Security on utilities. However, we can make some comment<br />

as to what per<strong>for</strong>mance impact may occur. As always the per<strong>for</strong>mance overhead on utilities<br />

varies greatly, depending on how many columns are in the table and how complex the<br />

definitions of the columns are. A utility processing more columns and per<strong>for</strong>ming more<br />

complex data conversion sees less impact using Row Level Security because any impact of<br />

SECLABEL processing is diluted. However, the CPU overhead of using Row Level Security<br />

may be significant when you are processing a large number of rows with few columns in each<br />

row. As always, your mileage will vary.<br />

Executing a LOAD RESUME utility against a table space containing tables with Row Level<br />

Security requires that the user is identified to RACF and has a valid SECLABEL. LOAD<br />

RESUME adheres to the same rules as INSERT. Without write-down authorization, the<br />

SECLABEL in the table is set to the SECLABEL associated with the user ID executing the<br />

LOAD RESUME utility. With write-down, any valid security label that is not disjoint in relation<br />

to the user's security can be specified. So, the per<strong>for</strong>mance impact of Row Level Security on<br />

LOAD RESUME is similar, but slightly higher than that of INSERTs.<br />

LOAD REPLACE deletes all rows in a table space. There<strong>for</strong>e, write-down authority is<br />

required. If the user ID associated with the job that is running the LOAD REPLACE utility does<br />

not have write-down privilege, and write-down is in effect, an error message is issued.<br />

Executing the UNLOAD or REORG UNLOAD EXTERNAL utility against tables with Row<br />

Level Security requires that the user associated with the job is identified to RACF, and have a<br />

valid SECLABEL. For each row unloaded from those tables, if the user SECLABEL dominates<br />

the data SECLABEL, then the row is unloaded. If the user’s SECLABEL does not dominate<br />

the data SECLABEL, the row is not unloaded and no error is returned. The per<strong>for</strong>mance<br />

impact is there<strong>for</strong>e similar to that of SELECT.<br />

The UNLOAD utility has a sampling option where you can specify a percentage of rows to be<br />

unloaded. The sampling filter operates only on the rows you are allowed to access, so it is not<br />

possible <strong>for</strong> an unauthorized user to calculate the total size of the table using the UNLOAD<br />

utility. However, the RUNSTATS utility, which also has a sampling function, does not invoke<br />

Row Level Security. RUNSTATS also updates the <strong>DB2</strong> catalog with column distribution<br />

statistics and column values. We there<strong>for</strong>e recommend that if you are planning to implement<br />

MLS Row Level Security to protect your data, you should also review who has access to your<br />

<strong>DB2</strong> catalog tables.<br />

Executing REORG... DISCARD on tables with Row Level Security requires that the user is<br />

identified to RACF and has a valid SECLABEL. REORG with the DISCARD option adheres to<br />

the same rules as the SQL DELETE statement. For each row unloaded from those tables, if<br />

the row qualifies to be discarded, the user SECLABEL is compared to the data SECLABEL.<br />

We would there<strong>for</strong>e evaluate the per<strong>for</strong>mance impact to be slightly higher than that of<br />

DELETEs.<br />

Chapter 4. <strong>DB2</strong> subsystem per<strong>for</strong>mance 197

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!