Oracle 1Z0-117 - Questions & Answers
Free preview · every answer includes a full explanation
Product page: https://prepkeys.com/1z0-117.html
Examine the query and its execution plan:

Which statement is true regarding the execution plan?
This query first fetches rows from the CUSTOMERS table that satisfy the conditions, and then the join return NULL from the CUSTOMER_ID column when it does not find any corresponding rows in the ORDERS table.
The query fetches rows from CUSTOMERS and ORDERS table simultaneously, and filters the rows that satisfy the conditions from the resultset.
The query first fetches rows from the ORDERS table that satisfy the conditions, and then the join returns NULL form CUSTOMER_ID column when it does not find any corresponding rows in the CUSTOMERS table.
The query first joins rows from the CUSTOMERS and ORDERS tables and returns NULL for the ORDERS table columns when it does not find any corresponding rows in the ORDERS table, and then fetches the rows that satisfy the conditions from the result set.
Which three statements are true about histograms?
They capture the distribution of different values in an index for better selectivity estimates.
They can be used only with indexed columns.
They provide metadata about distribution of and occurrences of values in a table column.
They provide improved selectivity estimates in the presence of data skew, resulting in execution plans with uniform distribution.
They help the optimizer in deciding whether to use an index or a full table scan.
They help the optimizer to determine the fastest table join order.
C: A histogram is a frequency distribution (metadata) that describes the distribution of data values within a table.
E: It's well established that histograms are very useful for helping the optimizer choose between a full-scan and and index-scan.
F: Histograms may help the Oracle optimizer in deciding whether to use an index vs. a full-table scan (where index values are skewed) or help the optimizer determine the fastest table join order. For determining the best table join order, the WHERE clause of the query can be inspected along with the execution plan for the original query. If the cardinality of the table is too-high, then histograms on the most selective column in the WHERE clause will tip-off the optimizer and change the table join order.
Note:
* The Oracle Query Optimizer uses histograms to predict better query plans. The ANALYZE command or DBMS_STATS package can be used to compute these
histograms.
Incorrect:
B: Histograms are NOT just for indexed columns.
Adding a histogram to an un-indexed column that is used in a where clause can improve performance.
D: Histograms Opportunities
Any column used in a where clause with skewed data Columns that are not queried all the time Reduced overhead for insert, update, delete

View the exhibit and examine the query and its execution plan from the PLAN_TABLE.
Which statement is true about the execution?
The row with the ID column having the value 0 is the first step execution plan.
Rows are fetched from the indexes on the PRODUCTS table and from the SALES table using full table scan simultaneously, and then hashed into memory.
Rows are fetched from the SALES table, and then a hash join operator joins with rows fetched from indexes on the PRODUCTS table.
All the partitions of the SALES table are read in parallel.
Which four statements are correct about communication between parallel execution process?
The number of logical pathways between parallel execution producers and consumers depends on the degree parallelism.
The shared pool can be used for parallel execution messages buffers.
The large pool can be used for parallel execution messages buffers.
The buffer cache can be used for parallel execution message buffers.
Communication between parallel execution processes is never required if a query uses full partition-wise joins.
Each parallel execution process has an additional connection to the parallel execution coordinator.
A: Note that the degree of parallelism applies directly only to intra-operation parallelism. If inter-operation parallelism is possible, the total number of parallel execution servers for a statement can be twice the specified degree of parallelism. No more than two sets of parallel execution servers can run simultaneously.
Each set of parallel execution servers may process multiple operations. Only two sets of parallel execution servers need to be active to guarantee optimal inter-operation parallelism.
B: By default, Oracle allocates parallel execution buffers from the shared pool.
F: When executing a parallel operation, the parallel execution coordinator obtains parallel execution servers from the pool and assigns them to the operation. If necessary, Oracle can create additional parallel execution servers for the operation. These parallel execution servers remain with the operation throughout job execution, then become available for other operations. After the statement has been processed completely, the parallel execution servers return to the pool.
References:
Oracle Database Data Warehousing Guide, Using Parallel Execution
You have enabled DML by issuing: ALTER session ENABLE PARALLEL DML;
The PARELLEL_DEGREE_POLICY initialization parameter is set to AUTO.
Which two options true about DML statements for which parallel execution is requested?
Statements for which PDML is requested will execute serially estimated time is less than the time specified by the PARALLEL_MIN_THRESHOLD parameter.
Statements for which PDML is requested will be queued if the number of busy parallel execution servers greater than PARALLEL_MIN_SERVERS parameter.
Statements for which PDML is requested will always execute in parallel if estimated execution in parallel if estimated execution time is greater than the time
specified by the PARELLEL_MIN_TIME_THRESHOLD parameter.
Statements for which PDML is requested will be queued if the number of busy parallel execution servers is greater than PARELLEL_SERVERS_TARGET parameter.
Statement for which PDML is requested will be queued if the number of busy parallel execution servers is greater than PARELLEL_DEGREE_LIMIT parameter.
C: PARALLEL_MIN_TIME_THRESHOLD specifies the minimum execution time a statement should have before the statement is considered for automatic degree of parallelism. By default, this is set to 30 seconds. Automatic degree of parallelism is only enabled if PARALLEL_DEGREE_POLICY is set to AUTO or LIMITED.
D: PARALLEL_SERVERS_TARGET specifies the number of parallel server processes allowed to run parallel statements before statement queuing will be used.
When the parameter PARALLEL_DEGREE_POLICY is set to AUTO, Oracle will queue SQL statements that require parallel execution, if the necessary parallel server processes are not available. Statement queuing will begin once the number of parallel server processes active on the system is equal to or greater than PARALLEL_SERVER_TARGET.
Note:
* PARALLEL_DEGREE_POLICY specifies whether or not automatic degree of Parallelism, statement queuing, and in-memory parallel execution will be enabled.
AUTO
Enables automatic degree of parallelism, statement queuing, and in-memory parallel execution.
* PARALLEL_MIN_SERVERS specifies the minimum number of parallel execution processes for the instance. This value is the number of parallel execution processes Oracle creates when the instance is started.
References:
Oracle Database Reference
PARALLEL_SERVERS_TARGET
Examine Exhibit1 to view the query and its AUTOTRACE output.

Which two statements are true about tracing?
The displayed plan will be stored in PLAN_TABLE.
Subsequent execution of this statement will use the displayed plan that is stored in v$SQL.
The displayed plan may not necessarily be used by the optimizer.
The query will not fetch any rows; it will display only the execution plan and statistics.
The execution plan generated can be viewed from v$SQLAREA.
The PLAN_TABLE is automatically created as a public synonym to a global temporary table. This temporary table holds the output of EXPLAIN PLAN statements for all users. PLAN_TABLE is the default sample output table into which the EXPLAIN PLAN statement inserts rows describing execution plans
Which two types of column filtering may benefit from partition pruning?
Equally operates on range-partitioned tables.
In-list operators on system-partitioned tables
Equality operators on system-partitioned tables
Operators on range-partitioned tables
Greater than operators on hash-partitioned tables
The query optimizer can perform pruning whenever a WHERE condition can be reduced to either one of the following two cases:
partition_column = constant
partition_column IN (constant1, constant2, ..., constantN)
In the first case, the optimizer simply evaluates the partitioning expression for the value given, determines which partition contains that value, and scans only this partition. In many cases, the equal sign can be replaced with another arithmetic comparison, including <, >, <=, >=, and <>. Some queries using BETWEEN in the
WHERE clause can also take advantage of partition pruning.
Note:
* The core concept behind partition pruning is relatively simple, and can be described as "Do not scan partitions where there can be no matching values".
When the optimizer can make use of partition pruning in performing a query, execution of the query can be an order of magnitude faster than the same query against a nonpartitioned table containing the same column definitions and data.
* Example:
Suppose that you have a partitioned table t1 defined by this statement:
CREATE TABLE t1 (
fname VARCHAR(50) NOT NULL,
lname VARCHAR(50) NOT NULL,
region_code TINYINT UNSIGNED NOT NULL,
dob DATE NOT NULL
) PARTITION BY RANGE( region_code ) (
PARTITION p0 VALUES LESS THAN (64), PARTITION p1 VALUES LESS THAN (128),
PARTITION p2 VALUES LESS THAN (192), PARTITION p3 VALUES LESS THAN MAXVALUE
);
Consider the case where you wish to obtain results from a query such as this one:
SELECT fname, lname, region_code, dob
FROM t1 WHERE region_code > 125 AND region_code < 130;
p0 or It is easy to see that none of the rows which ought to be returned will be in either of the partitions p3; that is, we need to search only in partitions p1 and p2 to find
matching rows. By doing so, it is possible to expend much less time and effort in finding matching rows than would be required to scan all partitions "cutting away" of unneeded partitions is known as pruning. in the table. This
Which two statements about In-Memory Parallel Execution are true?
It can be configured using the Database Resource Manager.
It increases the number of duplicate block images in the global buffer cache.
It requires setting PARALLEL_DEGREE_POLICY to LIMITED.
Objects selected for In-Memory Parallel Execution have blocks mapped to specific RAC instances.
It requires setting PARALLEL_DEGREE_POLICY to AUTO
Objects selected for In-Memory Parallel Execution must be partitioned tables or indexes.
D, E: In-Memory Parallel Execution
When the parameter PARALLEL_DEGREE_POLICY is set to AUTO, Oracle Database decides if an object that is accessed using parallel execution would benefit from being cached in the SGA (also called the buffer cache). The decision to cache an object is based on a well-defined set of heuristics including the size of the object and frequency on which it is accessed. In an Oracle RAC environment, Oracle Database maps pieces of the object into each of the buffer caches on the active instances. By creating this mapping, Oracle Database automatically knows which buffer cache to access to find different parts or pieces of the object. Using this information, Oracle Database prevents multiple instances from reading the same information from disk over and over again, thus maximizing the amount of memory that can cache objects. If the size of the object is larger than the size of the buffer cache (single instance) or the size of the buffer cache multiplied by the number of active instances in an Oracle RAC cluster, then the object is read using direct-path reads.
E: PARALLEL_DEGREE_POLICY specifies whether or not automatic degree of Parallelism, statement queuing, and in-memory parallel execution will be enabled.
AUTO
Enables automatic degree of parallelism, statement queuing, and in-memory parallel execution.
Incorrect:
C:
LIMITED
Enables automatic degree of parallelism for some statements but statement queuing and in-memory Parallel Execution are disabled. Automatic degree of parallelism is only applied to those statements that access tables or indexes decorated explicitly with the PARALLEL clause. Tables and indexes that have a degree of parallelism specified will use that degree of parallelism.
References:
Oracle Database VLDB and Partitioning Guide 11g, How Parallel Execution Works
Which three are benefits of In-Memory Parallel Execution?
Reduction in the duplication of block images across multiple buffer caches
Reduction in CPU utilization
Reduction in the number of blocks accessed
Reduction in physical I/O for parallel queries
Ability to exploit parallel execution servers on remote instance
Note: In-Memory Parallel Execution
When the parameter PARALLEL_DEGREE_POLICY is set to AUTO, Oracle Database decides if an object that is accessed using parallel execution would benefit from being cached in the SGA (also called the buffer cache). The decision to cache an object is based on a well-defined set of heuristics including the size of the object and frequency on which it is accessed. In an Oracle RAC environment, Oracle Database maps pieces of the object into each of the buffer caches on the active instances. By creating this mapping, Oracle Database automatically knows which buffer cache to access to find different parts or pieces of the object. Using this information, Oracle Database prevents multiple instances from reading the same information from disk over and over again, thus maximizing the amount of memory that can cache objects. If the size of the object is larger than the size of the buffer cache (single instance) or the size of the buffer cache multiplied by the number of active instances in an Oracle RAC cluster, then the object is read using direct-path reads.
References:
Oracle Database VLDB and Partitioning Guide 11g, How Parallel Execution Works
You plan to bulk load data INSERT INTO . . . SELECT FROM statements.
Which two situations benefit from parallel INSERT operations on tables that have no materialized views defined on them?
Direct path insert of a million rows into a partitioned, index-organized table containing one million rows and a conventional B*tree secondary index.
Direct path insert of a million rows into a partitioned, index-organized table containing 10 rows and a bitmapped secondary index.
Direct path insert of 10 rows into a partitioned, index-organized table containing one million rows and conventional B* tree secondary index.
Direct path insert of 10 rows into a partitioned, index-organized table containing 10 rows and a bitmapped secondary index
Conventional path insert of a million rows into a nonpartitioned, heap-organized containing 10 rows and having a conventional B* tree index.
Conventional path insert of 10 rows into a nonpartitioned, heap-organized table one million rows and a bitmapped index.
Note:
* A materialized view is a database object that contains the results of a query.
* You can use the INSERT statement to insert data into a table, partition, or view in two ways:
conventional INSERTand direct-path INSERT.
* With direct-path INSERT, the database appends the inserted data after existing data in the table. Data is written directly into datafiles, bypassing the buffer cache. Free space in the existing data is not reused. This alternative enhances performance during insert operations and is similar to the functionality of the Oracle direct-path loader utility, SQL*Loader. When you insert into a table that has been created in parallel mode, direct-path INSERT is the default.
* Direct-path INSERT is not supported for an index-organized table (IOT) if it is not partitioned, if it has a mapping table, or if it is reference by a materialized view.
* When you issue a conventional INSERT statement, Oracle Database reuses free space in the table into which you are inserting and maintains referential
integrity constraints
* Conventional INSERT always generates maximal redo and undo for changes to both data and metadata, regardless of the logging setting of the table and the archivelog and force logging settings of the database
Showing 10 of 125 questions · Unlock the full set