問題タブ [database-tuning]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
oracle10g - クエリのチューニング手法に関する提案が必要です
view_x
他のソースからデータを取得しようとしているビューです(@othertable_dblink
)
私はb1にインデックスを持っています。しかし、 view_x は view であるため、その上にインデックスを作成する権限がありません。
注:これにより、mytable と mytable2 で「table access full」のようなエラーが発生します。
私の質問:「テーブルアクセスがいっぱい」にならないようにすることで、これにかかる時間を短縮するにはどうすればよいですか
クエリのチューニング手法があれば、教えてください。
performance - 設定するOracle互換パラメータ
Compatible パラメータを 11.2.0.0 と 11.2.0.4 に設定することに違いはありますか? 利点/欠点はありますか?
performance - Neo4j 2.0.1 エンタープライズ エディション: パフォーマンスの問題
次の構成のシステムでしばらくの間、neo4j 1.8.1 コミュニティ エディションを喜んで使用していました。
システム仕様:
- OS : 32 ビット Ubuntu 12.04.3 LTS。カーネル バージョン 3.2.0-52-generic-pae #78-Ubuntu
- メモリー:4GB
- スワップ: 8GB (スワップファイル - パーティションではありません)
- プロセッサー: Intel® Core™ i5-2430M CPU @ 2.40GHz - クアッドコア
- ハードディスク: 500GB Seagate ATA ST9500420AS 。デュアル ブート - Ubuntu は 100 GB を使用し、残りは万能の Windows 7 で使用します。
neo4j 2.0.1 エンタープライズ エディションに切り替えたところ、アプリケーションの応答時間が 4 倍遅くなりました。そこで、http://docs.neo4j.org/chunked/stable/embedded-configuration.htmlでアドバイスされているように、ファイルシステム、仮想メモリ、I/O スケジュール、および JVM 構成の調整を開始しました。
性能調整
スケジューリング優先度が最も高いサーバーとして Neo4j を開始しました (nice 値 = -20)
/etc/sysctl.conf で vm.dirty_background_ratio=50 および vm.dirty_ratio=80 を設定して、ダーティ メモリ ページがディスクに頻繁にフラッシュされるのを減らします。
Neo4j の起動で提案されているように、開いているファイルの最大数を 1024 から 40,000 に増やしました。
/etc/fstab の neo4j ext4 パーティションに noatime,nodiratime を設定して、ファイル/ディレクトリ アクセスがあるたびに inode が更新されないようにします。
http://www.cyberciti.biz/faq/linux-change-io-scheduler-for-harddisk/に記載されているように、I/O scheular を「cfq」から「noop」に変更しました 。
JVM パラメーター: つまり、最大ヒープ サイズは 1GB で、neostore メモリ マップ ファイル サイズは 425 MB です。
Xms および Xmx から 1GB まで。GC からコンカレント マーク スイープ。neostore.nodestore.db.mapped_memory=25M、neostore.relationshipstore.db.mapped_memory=50M neostore.propertystore.db.mapped_memory=90M neostore.propertystore.db.strings.mapped_memory=130M neostore.propertystore.db.arrays.mapped_memory=130M
悲しいことに、これは何の違いもありませんでした。より良い全体像を得るために、N 個のノードとこれらのノード間に M 個のランダムな関係を作成する簡単なスクリプトを作成しました。
Oracle Java バージョン「1.6.0_45」を使用した Neo4j 1.8.1 コミュニティ エディション:
Oracle Java バージョン「1.7.0_51」の Neo4j 2.0.1 エンタープライズ版:
上記の結果は、2 回のウォームアップ実行後のものです。2.0.1 の結果は 1.8.1 より遅いようです。関連する構成を調整して neo4j 2.0.1 のパフォーマンスを向上させるための提案をいただければ幸いです。
編集1
すべてのクエリは、Everyman Neo4j ラッパーを介して Gremlin を使用して発行されます。
http://grokbase.com/p/gg/neo4j/143w1fen8c/gremlin-plugin-extremely-slow-on-neo4j-2-0-1
その間、私は neo4j-enterprise-edition-1.9.6 (2.0.1 より前の最新の安定版) に移行し、正常に戻りました。
sql-server - 非正規化なしの自己結合のための SQL Server データベースのチューニング
TPC-H データベースとワークロードがあり、次のクエリ (TPC-H のクエリ 21) を処理しています。
問題をより明確にするために、クエリは元のクエリにわずかに変更されています。クエリのアイデアは、複数のサプライヤーの注文を待たせたサプライヤーの名前を見つけることです。クエリは、指定された国のサプライヤーを識別します。このクエリの主な問題は、複数のサプライヤーの注文を特定することです。これは、基本的に存在する条件です。
次のインデックスを作成すると:
次の結果で、非常に優れたクエリ プランが得られます。
複数の固有のサプライヤーを持つ注文を検索するタスクには、半分以上の時間がかかります。LINEITEM の多数の論理読み取り、クエリ プラン (自己結合のコストは 79% と見積もられています) で確認できます。また、CPU 時間の半分につながる exists 句の削除もテストしました。このサブクエリには自己結合が含まれているため、インデックス付きビューを作成することはできません。非正規化せずに最大のパフォーマンスを達成したいと思います。このクエリのパフォーマンスをさらに向上させる方法はありますか? 洞察をありがとう。
クエリ プランのテキスト表現を追加するだけです。
mysql - MySQL: バッファー プール インスタンスのルックアップ
MySQL V5.5.38 では、2 つのバッファー プール インスタンスがあり、ウォームアップ sql が実行されたときに、特定のテーブルからのデータが 2 つのインスタンス間で分割されました (これは innodb_buffer_page テーブルを使用して識別されます)。ここで、where 句でインデックスのない列を使用してクエリを実行すると、どのバッファー プール インスタンスを検索するかをどのように決定するのでしょうか??
探しているデータが特定のインスタンスにない場合、(1) そのインスタンスにロードするか、(2) ディスクにアクセスする前に他のインスタンスを検索しますか?
このトピックに関する情報は役に立ちます。
sql-server - Lazy Index Spool が原因でクエリが非常に遅い
強力なマシンでは、SQL Server クエリの実行が遅すぎます。
実行計画では、費やされた時間のほとんどが「レイジー インデックス スプーリング」プロセスに費やされていることがわかります。クエリでは、値の計算にいくつかの集計関数が使用されています。
クエリを高速化するにはどうすればよいですか (マシン リソースで十分です)。
前もって感謝します。
sql-server - SQL Server の多数の使い捨てオブジェクト
再コンパイルが約 50 ~ 60% のデータベースがあります。その値は、[SQL Compilations/sec] と [Batch Requests/sec] を組み合わせたものです。
その値は少し高いと思います
このクエリを見ると:
実行回数と比較すると、plan_generation_num は多くありません。私たちが持っているのは使い捨てのオブジェクトがたくさんありますが、その理由を理解しようとしていますか?
私たちのアプリケーションは ASP.NET で構築されており、常にパラメーター化されたクエリを使用しています。アプリケーションでは SP と SQL ステートメントの両方を使用しますが、常にパラメーター化されています。
このデータベースに対して実行される Web ページは、毎日約 500 000 ページビュー、毎分約 10 000 リクエストのかなり大きな Web サイトです。
長時間実行されているクエリとインデックスはなく、統計は順調です。これは、最適化する最後のものの 1 つです。
CPU は平均 15%、RAM は約 100 GB で、もちろん SQL サーバーによって使い果たされます。SQL Server 2014 Enterprise を使用しています。
気になり始めたことが一つ。このようなSQLステートメントがある場合
このパーツにパラメーターを設定していないため、このプランは再利用されません: **AND アクティブ = 1 **
使い捨てが多い理由を理解する方法はありますか? キャッシュされたプランのカウントは約 20,000 です。比較すると、アプリには約 700 個の sp があり、さらに多くのクエリがあります。