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
20.3.3 Parallelizing Table Creation → number of parallel execution servers when creating the table. See Also: Oracle Database VLDB and
20.7.9 Online Redefinition of One or More Partitions → subpartition that is being moved. See \" Moving a Table to a New Segment or Tablespace \". See Also: Oracle Database VLDB and Partitioning Guide
5.6.1 About Parallel Execution Servers → Database SQL Tuning Guide for information about using parallel hints Oracle Database VLDB and
Oracle Database includes the following components: the Oracle Database instance, which is a collection… → UPDATE INDEXES ONLINE; See Also: Oracle Database VLDB and Partitioning Guide Oracle Database SQL Language Reference
FAST_START_PARALLEL_ROLLBACK → If a system fails when there are uncommitted parallel DML or DDL transactions, you can speed up transaction recovery during startup by using the FAST_START_PARALLEL_ROLLBACK parameter. This parameter controls the DOP used when recovering terminated transactions. Terminated transactions are transactions that are active before a system failure. By default, the DOP is chosen to be at most two times the
Degree of Parallelism (CREATE Part) → The DOP for the CREATE operation, and for the SELECT operation if it is parallelized, is specified by the PARALLEL clause of the CREATE statement, unless it is overridden by an ALTER SESSION FORCE PARALLEL DDL statement. If the PARALLEL clause does not specify the DOP, the default is the number of CPUs.
Creating Composite List-Range Partitioned Tables → Example 4-14 shows an accounts table that is list partitioned by region and subpartitioned using range by account balance, and row movement is enabled. Subpartitions for different list partitions could have different ranges specified. To learn how using a subpartition template can simplify the specification of a composite partitioned table, see \" Specifying Subpartition Templates to Describe Composite
Creating Reference-Partitioned Tables → To create a reference-partitioned table, you specify a PARTITION BY REFERENCE clause in the CREATE TABLE statement. This clause specifies the name of a referential constraint and this constraint becomes the partitioning referential constraint that is used as the basis for reference partitioning in the table. The referential constraint must be enabled and enforced. As with other partitioned tables,
Single-Level Partitioning → A table is defined by specifying one of the following data distribution methodologies, using one or more columns as the partitioning key: Range Partitioning Hash Partitioning List Partitioning For example, consider a table with a column of type NUMBER as the partitioning key and two partitions less_than_five_hundred and less_than_one_thousand. The less_than_one_thousand partition contains rows where
Creating a Composite Range-List Partitioned Table → Example 4-10 illustrates how range-list partitioning might be used. The example tracks sales data of products by quarters and within each quarter, groups it by specified states. A row is mapped to a partition by checking whether the value of the partitioning column for a row falls within a specific partition range. The row is then mapped to a subpartition within that partition by identifying the subpartition
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.