首页 > 数据库 > Oracle > 世界上最快的Oracle数据仓库的一些性能配置信息
[@more@]
Vendors spend millions of dollars tuning their benchmarks, and the TPC disclosure report are a goldmine of Oracle tuning tips. You can learn a lot about Oracle tuning by reading the TPC benchmark full disclosure reports.
The previous world record for Oracle TPC-H (data warehouse) benchmark was 1,500 QphH (query per hour), and this record has now been broken with an HP Superdome at 1,700 QphH. This benchmark used:
large data blocks - 32k blocksize
Huge PGA - 50g PGA region size (pga_aggregate_target)
Huge SGA - 90g SGA target (sga_target)
But the most recent world record is even more impressive, with this world record TPC-H Oracle data warehouse benchmark report.
Tiny disks - Smaller disk give higher bandwidth and this benchmark used tiny 32 gig disks.
Huge RAM buffers - This benchmark used a 30 gig data buffer and a 150 gig pga_aggregate_target.
Let's take a closer look that the Oracle tuning tips hidden inside this benchmark.
This benchmark noted 170k data warehouse transactions per hour, using an HP superdome (with a 3 year server cost of $6.6m), using an astounding 512 gigabytes of RAM:
Processors = 64 CPU's, each 64-bit (Intel Itanium2)
Database size = 10,000 gig - made-up of "tiny" 32 gig platters
Server RAM = 512 gig - Yes, that's half a trillion bytes of RAM
Here are the "tricks" that Oracle used to get super-fast performance in this data warehouse test, a lesson for anyone who tunes a data warehouse environment:
Tiny disks - Each disk was only 32 gigabytes, and each disk was not full. This provides higher bandwidth. Read my notes on the plague of super-large disks for details.
RAID 10 - This benchmark used Oracle ASM with SAME (stripe and mirror everywhere, a.k.a. RAID1+0).
Giant RAM regions - Remember, disks are now 50 years-old, and there is a limited to this 1950's technology of magnetic-coated platters. This benchmark used a 30 gigabyte data buffer (db_cache_size) and pga_aggregate_target = 150g. This benchmark also chose a giant shared pool with shared_pool_size = 50g.
Large data blocks - Numerous proofs have shown that Oracle indexes build cleaner tree structures in 32k blocks, plus a single I/O results in more data being delivered into the SGA/PGA.
Server-specific parameters - There are special parameters for most server types that can dramatically help performance. In this case, the test used the Oracle parameter hpux_sched_noage and the HP-UX parameter ASYNC_BUF_CONF.
Huge log buffer - Oracle used to recommend keeping the log_buffer small (under 10 meg), but our experience is that a larger log_buffer can increase throughput for high DML transactions. This benchmark used log_buffer=268,435,456, about 250 megabytes!
Adjust Oracle optimizer parameters - Adjusting optimizer_index_cost_adj has a profound system-wide influence on the cost-based SQL optimizer, and most OLTP system use a smaller value (10-50) for influence higher index usage, and data warehouses use a larger value (100-300) to "prefer" full-table-scans. This benchmark used optimizer_index_cost_adj = 200. I have a whole chapter dedicated to holistic SQL tuning in my book "Oracle Tuning: The Definitive Reference".
High Query Parallelism - Server with multiple CPU's can greatly increase the speed of full-table scans with Oracle parallel query. This benchmark used these parallel parms:
parallel_adaptive_multi_user = true
parallel_execution_message_size = 65535
parallel_max_servers = 1600
parallel_min_servers = 1600
parallel_threads_per_cpu = 3
instance_type = rdbmsaq_tm_processes = 0audit_trail = FALSEcompatible = 10.1.0.2control_files = (+DG1/control1,+DG1/control2)cpu_count = 64db_block_checksum = falsedb_block_size = 32768db_cache_size = 30gdb_file_multiblock_read_count = 64db_files = 2400db_name = 10tbdb_writer_processes = 16dml_locks = 40000global_names = FALSEhpux_sched_noage = 180instance_name = tpchjob_queue_processes = 0log_buffer = 268435456log_checkpoints_to_alert =
Here are the parms for the ASM instance:
instance_type=asmshared_pool_size=4Gdb_cache_size=2gasm_diskgroups=DG1ASM.instance_number=1instance_number=1processes=500ASM_DISKSTRING='/dbms/links/roradsk*'lock_sga=TRUEbackground_dump_dest='/opt/app/admin/ASM/log'core_dump_dest='/opt/app/admin/ASM/log'user_dump_dest='/opt/app/admin/ASM/log'truelog_checkpoint_interval = 18000max_dump_file_size = unlimitednls_date_format = YYYY-MM-DDopen_cursors = 1024optimizer_features_enable = 10.2.0.1.1optimizer_index_cost_adj = 200optimizer_mode = CHOOSEparallel_adaptive_multi_user = trueparallel_execution_message_size = 65535parallel_max_servers = 1600parallel_min_servers = 1600parallel_threads_per_cpu = 3pga_aggregate_target = 150gprocesses = 5000recovery_parallelism = 32replication_dependency_tracking = falsesession_cached_cursors = 0shared_pool_size = 50gstatistics_level = basicundo_management = autoundo_retention = 200000
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/100091/viewspace-899687/ ,如需转载,请注明出处,否则将追究法律责任。