用Oracle并行查询发挥多CPU的威力
正在看的ORACLE教程是:用Oracle并行查询发挥多CPU的威力。参数让我们进一步看看CPU的数量是如何影响这些参数的。
参数fast_start_parallel_rollback
Oracle并行机制中一个令人兴奋之处是在系统崩溃时调用并行回滚得能力。当Oracle数据库发生少有的崩溃时,Oracle能自动检测未完成的事务并回滚到起始状态。这被称为并行热启动,而Oracle使用基于cpu_count的fast_start_parallel_rollback参数来决定未完成事务的秉性程度。
并行数据操纵语言(DML)恢复能够在Oracle数据库崩溃后极大地加快其重新启动的速度。此参数的默认值是系统CPU数量的两倍,但是一些DBA们认为应该将这个值设置为cpu_count的四倍。
参数parallel_max_servers_parameter
Oracle一个显著的加强是自动决定OPQ并行的程度。由于Oracle清楚服务器中CPU的数量,它会自动分配合适的子进程的数量来提升并行查询的响应时间。当然,会有其它的外部因素,比如表的划分以及磁盘输入/输出子系统的布局等,但是根据cpu_count来设置parallel_max_servers参数将给Oracle一个合理的依据来选择并行的程度。
由于Oracle的并行操作严重依赖服务器上CPU的数量,parallel_max_servers会被设置成服务器上CPU的数量。如果在一台服务器上运行多个实例,则默认值太大了,会导致过度的页面交换和严重的CPU负担。并行的程度还依赖于目标表中分区的数量,因此parallel_max_servers应该设置成足够大以允许Oracle为每个查询选择最佳数量的并行子查询。
参数log_buffer
参数log_buffer定义了供即刻写入redo日志信息的保留RAM的数量,这个参数受cpu_count的影响。Oracle推荐log_buffer最大为cpu_count乘以500KB或128KB。CPU的数量对于log_buffer来说非常重要,因为Oracle会生成多日志写入(LGWR)进程来异步释放redo信息。
log_buffer是Oracle中最易误解的的RAM参数之一,通常存在下面几个配置错误:
log_buffer被设置得太高(例如,大于1MB),这回引起性能问题,因为大容量的结果会使得写入同步进行(例如,日志同步等待事件非常高)。
log_buffer 在一个单独的服务器中安装更多的CPU成为目前的一个趋势。使用对称多处理服务器(SMP)的情况下,一个Oracle服务器拥有8个、16个或32个CPU以及几吉比特RAM的SGA都不足为奇。
Oracle跟上了硬件发展的步伐,提供了很多面向多CPU的功能。从Oracle8i开始,Oracle在每个数据库函数中都实现了并行性,包括SQL访问(全表检索)、并行数据操作和并行恢复。对于Oracle专业版的挑战是为用户的数据库配置尽可能多的CPU。
在Oracle环境中实现并行性最好的方法之一是使用Oracle并行查询(OPQ)。我将讨论OPQ是如何工作的和怎样用它来提升大的全表检索的响应时间以及调用并行事务回滚等等。
使用OPQ
当在Oracle中进行一次合法的、大型的全表检索时,OPQ能够极大地提高响应时间。通过OPQ,Oracle将表划分成如图A所示的逻辑块。
图 A
由OPQ划分的表
一旦表被划分成块,Oracle启用并行的子查询(有时称为杂务进程),每个子查询同时读取一个大型表中的一块。所有子查询完毕以后,Oracle将结果会传给并行查询调度器,它会重新安排数据,如果需要则进行排序,并且将结果传递给最终用户。OPQ具有无限的伸缩性,因此,以前需要花费几分钟的全表检索现在的响应时间却不到1秒。
OPQ严重依赖于处理器的数量,通过并行运行之所以可以极大地提升全表检索的性能,其前提就是使用了N-1个并行进程(N=Oracle服务器上CPU的数量)。
必须注意非常重要的一点,即Oracle9i能够自动检测外部环境,包括服务器上CPU的数量。在安装时,Oracle9i会检查服务器上CPU的数量,设置一个名为cpu_count的参数,并使用cpu_count作为默认的初始化输入参数。这些初始化参数会影响到Oracle对内部查询的处理。
下面就是Orale在安装时根据cpu_count而设置的一些参数:
- fast_start_parallel_rollback
- parallel_max_servers
- log_buffer
- db_block_lru_latches
[NextPage]
不是db_block_size的倍数。在的Oracle9i中,log_buffer应该是2048字节的倍数。
参数db_block_lru_latches
LRU锁的数量是在Oracle数据库内部用来管理数据库缓冲的,这严重依赖于服务器上CPU的数量。
很多聪明的Oracle9i的DBA使用多冲数据缓冲(例如db_32k_cache_size),他们推荐将这个未公开声明的参数重设置为默认的最大值。db_block_lru_latches参数在Oracle8i中使用得很多,但是在Oracle9i中变成了一个未公开声明的参数,因为Oracle现在根据数据库拥有的CPU数量设置了一个合理的默认值。
db_block_lru_latches默认被设置为服务器上cpu_count的一半(例如服务器上只有一个Oracle数据库)。Oracle推荐db_block_lru_latches千万不要超过cpu_count的两倍或三倍,或db_block_buffers的五十分之一。
如果使用多缓冲池则这种计算方法有一个问题,因为不能控制分配给每个数据缓冲池的锁的数量。如果db_writers参数大于1,则默认值或许显得太小。
加强服务器
Oracle数据库总是在提升性能,根据外部服务器环境检测cpu_count和基本参数设置的能力对于Oracle软件来说是一个重要的加强。
随着更多的Oracle系统转移到SMP上来,当客户要采取增强措施并将众多的数据库转移到拥有32个或64个CPU的巨大服务器上来的时候,这些参数显得愈发重要。
上一页

データベースの最適化では、クエリ要件に従ってインデックス作成戦略を選択する必要があります。1。クエリに複数の列が含まれ、条件の順序が固定されている場合、複合インデックスを使用します。 2。クエリに複数の列が含まれているが、条件の順序が修正されていない場合、複数の単一列インデックスを使用します。複合インデックスは、マルチコラムクエリの最適化に適していますが、単一列インデックスは単一列クエリに適しています。

MySQLスロークエリを最適化するには、slowquerylogとperformance_schemaを使用する必要があります。1。LowerQueryLogを有効にし、しきい値を設定して、スロークエリを記録します。 2。performance_schemaを使用してクエリの実行の詳細を分析し、パフォーマンスのボトルネックを見つけて最適化します。

MySQLとSQLは、開発者にとって不可欠なスキルです。 1.MYSQLはオープンソースのリレーショナルデータベース管理システムであり、SQLはデータベースの管理と操作に使用される標準言語です。 2.MYSQLは、効率的なデータストレージと検索機能を介して複数のストレージエンジンをサポートし、SQLは簡単なステートメントを通じて複雑なデータ操作を完了します。 3.使用の例には、条件によるフィルタリングやソートなどの基本的なクエリと高度なクエリが含まれます。 4.一般的なエラーには、SQLステートメントをチェックして説明コマンドを使用することで最適化できる構文エラーとパフォーマンスの問題が含まれます。 5.パフォーマンス最適化手法には、インデックスの使用、フルテーブルスキャンの回避、参加操作の最適化、コードの読み取り可能性の向上が含まれます。

MySQL非同期マスタースレーブレプリケーションにより、BINLOGを介したデータの同期が可能になり、読み取りパフォーマンスと高可用性が向上します。 1)マスターサーバーレコードはBinlogに変更されます。 2)スレーブサーバーは、I/Oスレッドを介してBINLOGを読み取ります。 3)サーバーSQLスレッドは、BINLOGを適用してデータを同期させます。

MySQLは、オープンソースのリレーショナルデータベース管理システムです。 1)データベースとテーブルの作成:createdatabaseおよびcreateTableコマンドを使用します。 2)基本操作:挿入、更新、削除、選択。 3)高度な操作:参加、サブクエリ、トランザクション処理。 4)デバッグスキル:構文、データ型、およびアクセス許可を確認します。 5)最適化の提案:インデックスを使用し、選択*を避け、トランザクションを使用します。

MySQLのインストールと基本操作には、次のものが含まれます。1。mysqlをダウンロードしてインストールし、ルートユーザーパスワードを設定します。 2。sqlコマンドを使用して、createdatabaseやcreateTableなどのデータベースとテーブルを作成します。 3. CRUD操作を実行し、挿入、選択、更新、コマンドを削除します。 4.パフォーマンスを最適化し、複雑なロジックを実装するためのインデックスとストアドプロシージャを作成します。これらの手順を使用すると、MySQLデータベースをゼロから構築および管理できます。

Innodbbufferpoolは、データとインデックスページをメモリにロードすることにより、MySQLデータベースのパフォーマンスを向上させます。 1)データページは、ディスクI/Oを削減するためにBufferPoolにロードされます。 2)汚れたページは、定期的にディスクにマークされ、リフレッシュされます。 3)LRUアルゴリズム管理データページの排除。 4)読み出しメカニズムは、可能なデータページを事前にロードします。

MySQLは、インストールが簡単で、強力で管理しやすいため、初心者に適しています。 1.さまざまなオペレーティングシステムに適した、単純なインストールと構成。 2。データベースとテーブルの作成、挿入、クエリ、更新、削除などの基本操作をサポートします。 3.参加オペレーションやサブクエリなどの高度な機能を提供します。 4.インデックス、クエリの最適化、テーブルパーティション化により、パフォーマンスを改善できます。 5。データのセキュリティと一貫性を確保するために、バックアップ、リカバリ、セキュリティ対策をサポートします。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

メモ帳++7.3.1
使いやすく無料のコードエディター

ドリームウィーバー CS6
ビジュアル Web 開発ツール

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

ホットトピック



