How do I narrow my search results?
After you submit your search query:
- On the Refine Search results page, select one or more categories of products or services from the left sidebar.
- Then for a category with search results, click Select to choose your product and release filters, and then click OK.
For search queries that contain multiple words, surround the query with quotes, and then resubmit your query. Example: "database cloud service"
How do I find the documentation for my product or service?
From the home page, click the technology categories for your products or services. If you do not know which category to pick, try the following features:
- Click the Find a product tab and search for your product or service.
- Click Browse All Products & Services at the bottom of the home page to view an alphabetical listing of products and services.
- Apple Safari: Version 6
- Google Chrome: Version 29 and later
- Mozilla Firefox: Version 24 and later
- Microsoft Internet Explorer: Version 9 and later
Truncating Multiple Partitions → You can truncate multiple partitions from a range or list partitioned table with the TRUNCATE PARTITION clause of the ALTER TABLE statement. The corresponding partitions of local indexes are truncated in the operation. Global indexes must be rebuilt unless UPDATE INDEXES is specified.For example, the following SQL statement truncates multiple partitions in the range-partitioned sales table. ALTER
Exchanging a Hash Partitioned Table with a *-Hash Partition → In this example, you are exchanging a whole hash partitioned table, with all of its partitions, with the partition of a *-hash partitioned table and all of its hash subpartitions. The following example illustrates this concept for a range-hash partitioned table. First, create a hash partitioned table: CREATE TABLE t1 (i NUMBER, j NUMBER) PARTITION BY HASH(i) (PARTITION p1, PARTITION p2); Populate
Best Practice 1: Use ARCHIVELOG Mode → Archived redo logs are crucial for recovery when no data can be lost because they constitute a record of changes to the database. Oracle Database can be run in either of two modes: ARCHIVELOG Oracle Database archives the filled online redo log files before reusing them in the cycle. NOARCHIVELOG Oracle Database does not archive the filled online redo log files before reusing them in the cycle. Running
Extract, Transform, and Load → The ETL process uses several Oracle features and a combination of methods to load (re-load) data into a data warehouse. These features consist of: Transportable tablespaces Transportable tablespaces allow users to quickly move a tablespace across Oracle Databases. It is the most efficient way to move bulk data between databases. Oracle Database provides the ability to transport tablespaces across
Concurrent Execution of Union All → Set operators like UNION or UNION ALL consist of multiple queries (branches) combined to a single SQL statement. Traditionally, set operators are processed in a sequential manner. Individual branches can be processed in serial or parallel, but only one branch at a time, one branch after another. While this approach satisfies many use cases, there are situations where the processing of multiple branches
About Modifying List Partitions: Adding Values → List partitioning enables you to optionally add literal values from the defining value list. This section contains the following topics: Adding Values for a List Partition Adding Values for a List Subpartition
Partitioning Overview → Partitioning allows a table, index, or index-organized table to be subdivided into smaller pieces, where each piece of such a database object is called a partition. Each partition has its own name, and may optionally have its own storage characteristics. This section contains the following topics: Basics of Partitioning Partitioning Key Partitioned Tables Partitioned Index-Organized Tables System
Global Nonpartitioned Indexes → Global nonpartitioned indexes behave just like local nonpartitioned indexes. Figure 2-8 offers a graphical view of global nonpartitioned indexes. Figure 2-8 Global Nonpartitioned Index Description of \"Figure 2-8 Global Nonpartitioned Index\"
Partition Pruning → Partition pruning is an essential performance feature for data warehouses. In partition pruning, the optimizer analyzes FROM and WHERE clauses in SQL statements to eliminate unneeded partitions when building the partition access list. This functionality enables Oracle Database to perform operations only on those partitions that are relevant to the SQL statement. This section contains the following
Incremental Data Loading in Parallel → Parallel DML combined with the updatable join views facility provides an efficient solution for refreshing the tables of a data warehouse system. To refresh tables is to update them with the differential data generated from the OLTP production system. In the following example, assume a refresh of a table named customers that has columns c_key, c_name, and c_addr. The differential data contains either
Creating List-Partitioned Index-Organized Tables → The other option for partitioning index-organized tables is to use the list method. In the following example, the sales index-organized table is partitioned by the list method. Example 4-24 uses the example tablespace, which is part of the sample schemas in your seed database. Normally you would specify different tablespace storage for different partitions. Example 4-24 Creating a list-partitioned
Default Parallelism → If the PARALLEL clause is specified but no degree of parallelism is listed, the object gets the default DOP. Default parallelism uses a formula to determine the DOP based on the system configuration, as in the following: For a single instance, DOP = PARALLEL_THREADS_PER_CPU x CPU_COUNT For an Oracle RAC configuration, DOP = PARALLEL_THREADS_PER_CPU x CPU_COUNT x INSTANCE_COUNT By default, INSTANCE_COUNT
About Dropping Partitioned Tables → Oracle Database processes a DROP TABLE statement for a partitioned table in the same way that it processes the statement for a nonpartitioned table. One exception is when you use the PURGE keyword. To avoid running into resource constraints, the DROP TABLE... PURGE statement for a partitioned table drops the table in multiple transactions, where each transaction drops a subset of the partitions or
Specifying Partitioning When Creating Index-Organized Tables → For index-organized tables, you can use the range, list, or hash partitioning method. The semantics for creating partitioned index-organized tables is similar to that for regular tables with these differences: When you create the table, you specify the ORGANIZATION INDEX clause, and INCLUDING and OVERFLOW clauses as necessary. The PARTITION clause can have OVERFLOW subclauses that allow you to specify
Bigfile Tablespaces → Oracle Database enables the creation of bigfile tablespaces. A bigfile tablespace consists of a single data or temporary file which can be up to 128 TB. The use of bigfile tablespaces can significantly reduce the number of data files for your database. Oracle Database supports parallel RMAN backup and restore on single data files. See Also: Oracle Database Backup and Recovery User's Guide Consequently,
About Merging Partitions and Subpartitions → Use the ALTER TABLE MERGE PARTITION statement to merge the contents of two partitions into one partition. The two original partitions are dropped, as are any corresponding local indexes. You cannot use this statement for a hash partitioned table or for hash subpartitions of a composite *-hash partitioned table. You cannot merge partitions for a reference-partitioned table. Instead, a merge operation
Balancing the Workload to Optimize Performance → To optimize performance, all parallel execution servers should have equal workloads. For SQL statements run in parallel by block range or by parallel execution servers, the workload is dynamically divided among the parallel execution servers. This minimizes workload skewing, which occurs when some parallel execution servers perform significantly more work than the other processes. For the relatively
Parameters Establishing Resource Limits for Parallel Operations → You can set initialization parameters to determine resource limits. The parameters that establish resource limits are discussed in the following topics: PARALLEL_FORCE_LOCAL PARALLEL_MAX_SERVERS PARALLEL_MIN_PERCENT PARALLEL_MIN_SERVERS PARALLEL_MIN_TIME_THRESHOLD PARALLEL_SERVERS_TARGET SHARED_POOL_SIZE Additional Memory Requirements for Message Buffers Monitor Memory Usage After Processing Begins
Introduction to Partitioning → Partitioning addresses key issues in supporting very large tables and indexes by decomposing them into smaller and more manageable pieces called partitions, which are entirely transparent to an application. SQL queries and Data Manipulation Language (DML) statements do not need to be modified to access partitioned tables. However, after partitions are defined, data definition language (DDL) statements
About Parallel DML Operations → Parallel DML ( PARALLEL INSERT, UPDATE, DELETE, and MERGE ) uses parallel execution mechanisms to speed up or scale up large DML operations against large database tables and indexes. Note: Although DML generally includes queries, in this chapter the term DML refers only to INSERT, UPDATE, MERGE, and DELETE operations. This section discusses the following parallel DML topics: When to Use Parallel DML
Partitioning of XMLIndex for Binary XML Tables → For binary XML tables, XMLIndex is equipartitioned with the base table for range, hash, and list partitions. For example: CREATE TABLE purchase_order (id NUMBER, doc XMLTYPE) PARTITION BY RANGE (id) (PARTITION p1 VALUES LESS THAN (10), PARTITION p2 VALUES LESS THAN (MAXVALUE)); CREATE INDEX purchase_order_idx ON purchase_order(doc) INDEXTYPE IS XDB.XMLINDEX LOCAL; See Also: Oracle Database Data Cartridge
Deciding Whether to Partition Indexes → Due to the selectivity of queries and high concurrency of OLTP applications, the choice of the right index strategy is indisputably an important decisions for the use of partitioning in an OLTP environment. The following basic rules explain the main benefits and trade-offs for the various possible index structures: A nonpartitioned index, while larger than individual partitioned index segments, always
Splitting a *-Range Subpartition → Splitting a range subpartition of a *-range partitioned table is similar to the description in \" Splitting a Partition of a Range-Partitioned Table \", but the syntax is that of SUBPARTITION rather than PARTITION. For example, the following statement splits a subpartition of the orders table: ALTER TABLE orders SPLIT SUBPARTITION p_pre_may_2007_p_large AT (50000) INTO (SUBPARTITION p_pre_may_2007_med_large
Summary of Partitioned Index Types → Table 3-1 summarizes the types of partitioned indexes that Oracle supports. The key points are: If an index is local, then it is equipartitioned with the underlying table. Otherwise, it is global. A prefixed index is partitioned on a left prefix of the index columns. Otherwise, it is nonprefixed. Table 3-1 Types of Partitioned Indexes Type of Index Index Equipartitioned with Table Index Partitioned
Partition Placement → Partition placement is not a concern if you stripe across all available devices and distribute the load across all available resources. If you cannot stripe data files across all available devices, then consider partition placement to optimize the use of all available hardware resources (physical disk spindles, disk controllers, and channels to disk). I/O-intensive queries or DML operations should
Creating a Local Index Across Multiple Tablespaces → The following statement is an example of creating a local index on a table where the index segments are spread across tablespaces ts7, ts8, and ts9. CREATE INDEX employee_ix ON employees_range_hash(department_id) LOCAL STORE IN (ts7, ts8, ts9); This local index is equipartitioned with the base table so that it consists of as many partitions as the base table. Each index partition consists of as many
When to Use Composite Partitioning → Composite partitioning offers the benefits of partitioning on two dimensions. From a performance perspective you can take advantage of partition pruning on one or two dimensions depending on the SQL statement, and you can take advantage of the use of full or partial partition-wise joins on either dimension. You can take advantage of parallel backup and recovery of a single table. Composite partitioning
Adding a Partition to a *-Range Partitioned Table → Adding a new partition to a [range | list | interval]-range partitioned table is as described previously. The database automatically creates interval partitions for an interval-range partitioned table when data is inserted in a specific interval. You can specify a SUBPARTITION clause for naming and providing ranges for specific subpartitions. If no SUBPARTITION clause is specified, then the partition
PARALLEL_MIN_PERCENT → This parameter enables users to wait for an acceptable DOP, depending on the application in use. The recommended value for the PARALLEL_MIN_PERCENT parameter is 0 (zero). Setting this parameter to values other than 0 (zero) causes Oracle Database to return an error when the requested DOP cannot be satisfied by the system at a given time. For example, if you set PARALLEL_MIN_PERCENT to 50, which translates
Block Range Granules → Block range granules are the basic unit of most parallel operations, even on partitioned tables. Therefore, from Oracle Database perspective, the degree of parallelism is not related to the number of partitions. Block range granules are ranges of physical blocks from a table. Oracle Database computes the number and the size of the granules during run-time to optimize and balance the work distribution
Manageability → In addition to the performance benefits, partitioning also enables the optimal data management for large objects in an OLTP environment. Every partition maintenance operation in Oracle Database can be extended to atomically include global and local index maintenance, enabling the execution of any partition maintenance operation without affecting the 24x7 availability of an OLTP environment. Partition
Tuning General Parameters for Parallel Execution → This section discusses the following topics: Parameters Establishing Resource Limits for Parallel Operations Parameters Affecting Resource Consumption Parameters Related to I/O
Self-Referential Integrity → DML on tables with self-referential integrity constraints is not parallelized if the referenced keys (primary keys) are involved. For DML on all other columns, parallelism is possible.
Enabling and Disabling Heat Map → You can enable and disable heat map tracking at the system or session level with the ALTER SYSTEM or ALTER SESSION statement using the HEAT_MAP clause. For example, the following SQL statement enables Heat Map tracking for the database instance. ALTER SYSTEM SET HEAT_MAP = ON; When Heat Map is enabled, all accesses are tracked by the in-memory activity tracking module. Objects in the SYSTEM and SYSAUX
Splitting Partitions in a *-List Partitioned Table → Partitions can be split at both the partition level and at the list subpartition level. Splitting a *-List Partition Splitting a *-List Subpartition
Partitioned Indexes on Composite Partitions → Here are a few points to remember when using partitioned indexes on composite partitions: Subpartitioned indexes are always local and stored with the table subpartition by default. Tablespaces can be specified at either index or index subpartition levels.
Example of Table Compression and Partitioning → The following statement moves and compresses an existing partition sales_q1_1998 of table sales: ALTER TABLE sales MOVE PARTITION sales_q1_1998 TABLESPACE ts_arch_q1_1998 COMPRESS; Alternatively, you could choose Hybrid Columnar Compression (HCC), as in the following: ALTER TABLE sales MOVE PARTITION sales_q1_1998 TABLESPACE ts_arch_q1_1998 COMPRESS FOR ARCHIVE LOW; If you use the MOVE statement,
Assigning Classes to Storage Tiers → After the storage tiers have been defined, the data classes (partitions) identified in Step 1 can be assigned to the appropriate storage tiers. This provides an easy way to distribute the data across the appropriate storage devices depending on its usage, keeping the data online and available, and stored on the most cost-effective device. In Figure 5-3 data identified to be active, less active, historical,
Partitioning Restrictions for Multiple Block Sizes → Use caution when creating partitioned objects in a database with tablespaces of different block sizes. The storage of partitioned objects in such tablespaces is subject to some restrictions. Specifically, all partitions of the following entities must reside in tablespaces of the same block size: Conventional tables Indexes Primary key index segments of index-organized tables Overflow segments of index-organized
Merging Range Partitions → You are allowed to merge the contents of two adjacent range partitions into one partition. Nonadjacent range partitions cannot be merged. The resulting partition inherits the higher upper bound of the two merged partitions. One reason for merging range partitions is to keep historical data online in larger partitions. For example, you can have daily partitions, with the oldest partition rolled up
Dynamic Pruning with Nested Loop Joins → Statements that are most efficiently executed using a nested loop join use dynamic pruning. For example: SQL> explain plan for select t.time_id, sum(s.amount_sold) from sales s, times t where s.time_id = t.time_id and t.fiscal_year = 2000 and t.fiscal_week_number = 3 group by t.time_id; Explained. SQL> select * from table(dbms_xplan.display); PLAN_TABLE_OUTPUT ----------------------------------------------------------------------------------------------------
When to Use Composite List-List Partitioning → Composite list-list partitioning is useful for large tables that are often accessed on different dimensions. You can specifically map rows to partitions on those dimensions based on discrete values. Example 3-12 shows an example of a very frequently accessed current_inventory table. The table is constantly updated with the current inventory in the supermarket supplier's local warehouses. Potentially
Partition Pruning → Partition pruning is the simplest and also the most substantial means to improve performance using partitioning. Partition pruning can often improve query performance by several orders of magnitude. For example, suppose an application contains an Orders table containing a historical record of orders, and that this table has been partitioned by week. A query requesting orders for a single week would
2 Partitioning Concepts → Partitioning enhances the performance, manageability, and availability of a wide variety of applications and helps reduce the total cost of ownership for storing large amounts of data. Partitioning allows tables, indexes, and index-organized tables to be subdivided into smaller pieces, enabling these database objects to be managed and accessed at a finer level of granularity. Oracle provides a rich
Partitioned Materialized Views → The underlying storage for a materialized view is a table structure. You can partition materialized views like you can partition tables. When the database rewrites a query to run against materialized views, the query can take advantage of the same performance features from which queries running against tables directly benefit. The rewritten query may eliminate materialized view partitions. If joins
Impact of a Partition Maintenance Operation on a Partitioned Table with Local Indexes → When a partition maintenance operation takes place, Oracle Database locks the affected table partitions for any DML operation, except in the case of an ONLINE MOVE. Data in the affected partitions, except a DROP or TRUNCATE operation, is still fully accessible for any SELECT operation. Because local indexes are logically coupled with the table (data) partitions, only the local index partitions of
Limiting the Number of Available Instances → In Oracle Real Application Clusters, services are used to limit the number of instances that participate in a parallel SQL operation. The default service includes all available instances. You can create any number of services, each consisting of one or more instances. Parallel execution servers are to be used only on instances that are members of the specified service that a given session is connected
Range Partitioning for Hash Clusters → Partitioned hash clusters are supported in Oracle Database. Only single-level range partitioning is supported for partitioned hash clusters. See Also: Oracle Database SQL Language Reference for information about partitioned hash clusters.
Dropping Values from a List Subpartition → This operation is essentially the same as described for \" About Modifying List Partitions: Dropping Values \", however, you use a MODIFY SUBPARTITION clause instead of the MODIFY PARTITION clause. For example, to remove a set of literal values in the value list for subpartition q1_1999_southeast, use the following statement: ALTER TABLE quarterly_regional_sales MODIFY SUBPARTITION q1_1999_southeast
Rollback Segments → If you use rollback segments instead of Automatic Undo Management, there are some restrictions when using parallel DML. See Oracle Database SQL Language Reference for information about restrictions for parallel DML and rollback segments.
Splitting into Multiple Partitions → You can redistribute the contents of one partition or subpartition into multiple partitions or subpartitions with the SPLIT PARTITION and SPLIT SUBPARTITION clauses of the ALTER TABLE statement. When splitting multiple partitions, the segment associated with the current partition is discarded. Each new partitions obtains a new segment and inherits all unspecified physical attributes from the current
Truncating a Partition with the Cascade Option → You can use cascade truncate operations to a reference partitioned child table with the CASCADE option of TRUNCATE TABLE, ALTER TABLE TRUNCATE PARTITION, and ALTER TABLE TRUNCATE SUBPARTITION SQL statements. When the CASCADE option is specified for TRUNCATE TABLE, the truncate table operation also truncates child tables that reference the targeted table through an enabled referential constraint that
Dropping Table Partitions → Use one of the following statements to drop a table partition or subpartition: ALTER TABLE DROP PARTITION to drop a table partition ALTER TABLE DROP SUBPARTITION to drop a subpartition of a composite *-[range | list] partitioned table To preserve the data in the partition, use the MERGE PARTITION statement instead of the DROP PARTITION statement. For information about merging a partition, refer to
Managing Data in Oracle Database With ILM → Information today comes in a wide variety of types, for example an e-mail message, a photograph, or an order in an Online Transaction Processing (OLTP) System. After you know the type of data and how it is used, you have an understanding of what its evolution and final disposition is likely to be. One challenge facing each organization is to understand how its data evolves and grows, monitor how its
Oracle ASM Settings Specific to VLDBs → Configuration of Oracle Automatic Storage Management for VLDBs is not very different from Oracle ASM configuration for non-VLDBs. Certain parameter values, such as the memory allocation to the Oracle ASM instance, may need a higher value. Oracle Database supports Oracle ASM variable allocation units. Large variable allocation units are beneficial for environments that use large sequential I/O operations.
About Exchanging a Subpartition of a *-List Partitioned Table → The semantics of the ALTER TABLE EXCHANGE SUBPARTITION are the same as described previously in \" Exchanging a Subpartition of a *-Hash Partitioned Table \".
Limitations and Restrictions With In-Database Archiving and Temporal Validity → This section lists the limitations and restrictions associated with In-Database Archiving and Temporal Validity. Temporal validity is not supported with a multitenant container database (CDB). ILM is not supported with OLTP table compression for Temporal Validity. Segment-level ILM and compression is supported if partitioned on the end-time columns. ILM is not supported with OLTP table compression
Adding Values for a List Partition → Use the MODIFY PARTITION ADD VALUES clause of the ALTER TABLE statement to extend the value list of an existing partition. Literal values being added must not have been included in any other partition value list. The partition value list for any corresponding local index partition is correspondingly extended, and any global indexes, or global or local index partitions, remain usable. The following
The Importance of Nonprefixed Indexes → Nonprefixed indexes are particularly useful in historical databases. In a table containing historical data, it is common for an index to be defined on one column to support the requirements of fast access by that column. However, the index can also be partitioned on another column (the same column as the underlying table) to support the time interval for rolling out old data and rolling in new data.
Restrictions on Parallel DML → The following restrictions apply to parallel DML (including direct-path INSERT ): Intra-partition parallelism for UPDATE, MERGE, and DELETE operations require that the COMPATIBLE initialization parameter be set to 9.2 or greater. The INSERT VALUES statement is never executed in parallel. A transaction can contain multiple parallel DML statements that modify different tables, but after a parallel DML