タグ付けされた質問 「performance」

システムが目的に適合するほど十分に機能するかどうかの評価。通常、パフォーマンスとは、システムが1つの操作または一連の操作を時間の経過とともに完了する速度を指します。

1
Qcache_free_memoryがいっぱいになっていませんが、たくさんのQcache_lowmem_prunesを取得しています
CMSのクエリキャッシュを少し始めました。 誰かが半分以上が無料であるときになぜ私が多くを得るのか私に言うことができますか(または少なくとも推測を与えることができますか)?Qcache_lowmem_prunesQcache_free_memory query_cache_size=512M query_cache_limit=1M 約12時間後の様子です show status like '%qcach%'; +-------------------------+-----------+ | Variable_name | Value | +-------------------------+-----------+ | Qcache_free_blocks | 10338 | | Qcache_free_memory | 297348320 | | Qcache_hits | 10254104 | | Qcache_inserts | 6072945 | | Qcache_lowmem_prunes | 725279 | | Qcache_not_cached | 2237603 | | Qcache_queries_in_cache | 48119 …

1
SQL ServerのキャッシュフラッシュとディスクI / O
.NET 4.0で開発したOLTPシステムの負荷テストに忙しく、SQL Server 2008 R2を背後で実行しています。システムはSQL Server Service Brokerキューを使用します。これは非常にパフォーマンスが高いキューですが、処理中に独特の傾向が発生しています。 SQL Serverは、1分の猛烈な速度で要求を処理し、その後、約20秒のディスク書き込みアクティビティが増加します。次のグラフは問題を示しています。 Yellow = Transactions per second Blue = Total CPU usage Red = Sqlsrv Disk Write Bytes/s Green = Sqlsrv Disk Read Bytes/s トラブルシューティング中に、パターンに大きな変更を加えることなく次のことを試みました。 SQL Serverエージェントを停止しました。 実行中の他のほぼすべてのプロセスを強制終了(A / V、SSMS、VS、Windowsエクスプローラーなど) 他のすべてのデータベースを削除しました。 すべての会話タイマーを無効にしました(トリガーは使用しません)。 メッセージキュー主導のアプローチから、シンプル/粗いテーブルモニタリングデザインに移行しました。 軽いものから重いものまで、さまざまな負荷を使用しました。 すべてのデッドロックを修正しました。 SQL Serverがキャッシュを構築し、特定の時間ベースの間隔でディスクに書き込んでいるように見えますが、この理論をサポートするオンラインのものが見つかりません。 次に、ソリューションを専用のテスト環境に移動して、問題を再現できるかどうかを確認します。暫定的な支援をいただければ幸いです。 Update 1 要求に応じて、チェックポイントページ/秒、ページの平均寿命、およびいくつかのディスク遅延カウンターを含むグラフがここにあります。 チェックポイント(水色の線)が、パフォーマンスの低下(黄色の線)の原因であるように見えます。^ …

3
INNODBパフォーマンスリークはどこにありますか?
私には修正できないように見える奇妙な問題があります。私はサーバー/ DB管理者というよりはWebプログラマーなので、ここの誰かが私を助けてくれることを願っています。 状況 私はたくさんの扱うシステムに取り組んでいますupdate、insertとdeleteの要求を。そのため、行ロック機能のストレージエンジンとしてINNODBを選択しました。Gearmanを使用して異なるサーバーでの作業を並列化し、10分ごとに60,000レコードを更新しています。コードはPHPにあり、Zend Frameworkを使用しています。 問題 SQLSTATE[HY000]: General error: 1205 Lock wait timeout exceeded; try restarting transaction 上記のエラーは、Gearmanワーカーの1人からほぼ30分ごとに発生します。 の mysql_report MySQL 5.1.63-0+squeeze1 uptime 15 9:52:12 Tue Sep 11 21:25:23 2012 __ Key _________________________________________________________________ Buffer used 55.00k of 16.00M %Used: 0.34 Current 2.92M %Usage: 18.24 Write hit 99.95% Read hit 100.00% …

2
ファイル(BLOB)が多すぎるSQL Server DBを処理する方法は?
シナリオ: ASP.NETアプリケーションにサービスを提供するSQL Server 2005データベース(別のWebサーバー上)。 データベース: DBには、約5GBの「通常の」データと約15GBの「ファイル」があります(例:画像(BLOB)として保存された200k PDFなど)。より多くのファイルがユーザーによってアップロードされており、急速に多くのディスク領域を消費しています(DBは、今後数か月で50GBに増加する可能性があり、ほとんどがファイルです)。 懸念事項: DBに非常に多くのファイルを保存すると、既に問題が発生しています(例:データベースの合計サイズが大きいと、DB全体のバックアップと展開が時々難しくなります。)。 そして、さらに問題が発生するのではないかと心配しています。(例:パフォーマンスの問題-おそらく、DB全体をRAMに保持できないことが原因でしょうか?) 質問: この問題に対してどのような技術的解決策を提案しますか?ファイルをファイルシステムに保存しますか?データベースを2つに分割し、ファイル用に大きくて遅いファイルを持っていますか? 必要に応じてさらに詳細: これらのファイルはそれほど重要ではなく、非常に高速なアクセス時間を必要としません。現在、数秒で十分ですが、現在1時間あたり数十の選択があります。DBの他の「通常の」データには、毎秒何回も必要な情報が含まれています。

1
InnoDB INSERTパフォーマンスの機能
こんにちは、Percona Serverの最新バージョンを実行しています。 サーバーのバージョン:5.5.24-55 Percona Server(GPL)、リリース26.0 私はこれらの特性の10 cpuボックスを持っています。 processor : 0 vendor_id : AuthenticAMD cpu family : 16 model : 9 model name : AMD Opteron(tm) Processor 6128 stepping : 1 microcode : 0x10000d9 cpu MHz : 800.000 cache size : 512 KB SSDと64GBのRAMを搭載しています。Innodbは約10GBであるため、innodb_buffer_pool_sizeは10GBに設定されています。 次のようなテーブルがあります。 create table TODAY ( symbol_id integer …

5
SQLプロファイラーはサーバーのパフォーマンスに影響しますか?
SQL Server 2008が高負荷で失敗するという問題に直面しています。その荷重ケースを見つけて、荷重を処理できるようにコードを最適化する必要があります。私はインターネットでSQLプロファイラーを使用してデータベースの相互作用を追跡し、後で分析して問題が発生する正確なポイントを見つけることができることを発見しました。SQLプロファイラーを起動する方法についても発見しました。しかし、私の質問は、SQLプロファイラーを起動することで、サーバーのパフォーマンスに影響を与えるということですか?

4
「クライアント処理時間」が長いためにリモートSELECTステートメントが遅いが、ローカルでは速い
実稼働サーバー(SQL Server 2008、非常に強力なマシン)に接続している間、このSELECTステートメントは2秒かかり、すべてのフィールド(合計4 MBのデータ)を返します。 SELECT TOP (30000) * FROM person WITH(NOLOCK); 同じネットワーク上の他のボックスから(SQL認証またはWindows認証を使用して接続)、同じクエリに1分8秒かかります。 私はこの非常に単純なステートメントでテストして、それが索引付けの問題やクエリ関連の問題ではないことを示しています。(現在、すべてのクエリでパフォーマンスの問題があります...) 行はチャンクで提供され、一度にすべてではありません。最初の行をすぐに取得し、行のバッチが入るまで1分以上待ちます。 クエリがリモートボックスから実行されたときのクエリのクライアント統計は次のとおりです。 Query Profile Statistics Number of INSERT, DELETE and UPDATE statements 0 Rows affected by INSERT, DELETE, or UPDATE statements 0 Number of SELECT statements 2 Rows returned by SELECT statements 30001 Number of transactions 0 …

3
MySQLデータベースをメモリにキャッシュする
MySQLデータベースが600 MBのWebサイトに問題があります。ウェブサイトが遅すぎる。MySQLデータベースが大きくなるほど、速度が遅くなることに気づきました。5MBだったとき、ウェブサイトは非常に高速でした。大きくなると徐々に遅くなり始め、現在は600MBと非常に遅く、ページのロードに10秒ほどかかります。 上位のプロセスを確認しましたが、高負荷などとは関係ありません。HDD 7.2k rpmドライブでテストしたため、IOPSにも関係がなく、Intel 320 SSDドライブでのテストでも同じ問題が発生したため、クエリ数が多いとは思われません。 WebサイトはWordpressを使用しており、9つのプラグインがアクティブになっています。人々はそれがプラグインかもしれないと言いました...多分...しかし、今私はデータベース全体をメモリにキャッシュしたいだけで、どこから始めてどのようにそれを行うかについてのヘルプと方向性を知りたいです。 16GB RAMとi5-2400 4コア@ 3.1 GHzを持っています。OSはcentos 5.7です top - 07:23:57 up 9 days, 12:15, 0 users, load average: 0.09, 0.04, 0.05 Tasks: 162 total, 1 running, 161 sleeping, 0 stopped, 0 zombie Cpu(s): 8.2%us, 1.0%sy, 0.0%ni, 90.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 16367532k …

4
SQL Server 2008インスタンスのRAIDレベルの組み合わせを選択する
1つのIBM 3400サーバーを最初から再構築します。このサーバーは、Windows 2008 R2で実行されているSQL Server 2008インスタンス専用です。 新しいRAID構成を作成します。マシン内部に6つのSCSI 73 GBドライブとIBM ServerRAID 8Kコントローラーがあります。RAIDレベルを設定する良い方法は何でしょうか?コントローラーに2つ、3つ、または1つのフィールドを配置する必要がありますか? 次のいずれかの解決策を検討しています。 すべてのディスクを使用して、RAID 10プールを作成します。 RAID 1eプールに4つのディスクを使用し、それを使用してデータベースデータとOSを格納し、他の2つのディスクをRAID 0プールに使用して、それを使用してデータベースログを格納します。 他のいくつかの組み合わせ。 ストライプユニットサイズが大きいほど良いですか? このサーバーは、複製されたデータベースのサブスクライバーになります。その主なタスクは、レプリケーションエージェントのみが書き込みを行う、レポートとデータの取得です。データベースのサイズは約90 GBです。

2
DBパフォーマンスを最大化するには、SSISを介して大量のデータをSQL Server 2008にロードした後に実行する必要があるコマンド
テストデータを空のデータベースに読み込むSSISパッケージを作成しました。一部のテーブルは非常に大きい(約7億行)。SSISパッケージが完了したら、データベースのパフォーマンスを最大化するために(見習いDBAとして)実行する必要があるコマンドはありますか? たとえば、私は実行しましたEXEC sp_updatestatsが、インデックスを更新する必要がないと報告されました。 大量のデータが読み込まれた後に行うことのリストはありますか、それともSQL Server 2008がそれらすべてを処理してくれるのですか?

6
PHPとMySQLの間で奇妙なクエリタイムアウトが発生する原因は何ですか?
私は、さまざまな顧客が使用するSoftware-as-a-Serviceアプリケーションの上級開発者です。私たちのソフトウェアは、MySQLバックエンドを搭載したApache / PHPアプリケーションサーバーのクラスター上で実行されます。上の1つのソフトウェアの特定のインスタンス、カテゴリ名のリストを照会するためのPHPコードがタイムアウトしている顧客が29個のを超えるカテゴリがある場合。私はこれが意味をなさないことを知っています。これを打破する30について特別なことは何もありません。他の顧客は30を超えるカテゴリを持っていますが、この1つのインストールに30以上のカテゴリがある場合、問題は100%再現可能であり、30未満のカテゴリがある場合、問題は解消します。 問題の表は次のとおりです。 CREATE TABLE IF NOT EXISTS `categories` ( `id` int(10) unsigned NOT NULL auto_increment, `name` varchar(64) NOT NULL, `title` varchar(128) NOT NULL, `parent` int(10) unsigned NOT NULL, `keywords` varchar(255) NOT NULL, `description` text NOT NULL, `status` enum('Active','Inactive','_Deleted','_New') NOT NULL default 'Active', `style` enum('_Unknown') default NULL COMMENT 'Autoenum;', …

2
SARGabilityに関する質問
私は私が何かを正しく理解していることを確認する必要があります: 私は最近、ユーザーがLinqに次のような回答を投稿したSO質問を表示しました。 from p in db.table where p.column.AddMinutes(1) > DateTime.Now select p Linqに不慣れな方には、そのステートメントの出力(公平にテストされていません)は次のようになると思います。 SELECT * FROM table t WHERE DATEADD(min, 1, t.column) >= GETDATE() 私はこれに対する返信を投稿し、日時操作は変数(この場合はGETDATE())に対して行う必要があるため、実際にはステートメントは次のようなものを反映する必要があります。 SELECT * FROM table t WHERE t.column >= DATEADD(min, -1, GETDATE()) 私の返答で、私が今確信していないビットは、次のように仮定します: 列の操作のため、インデックスは使用されません 上記の理由により、クエリプランは一部異なります(テストされていないため、テストされています)。 上記のため、最初のクエリは実際には2番目のクエリよりもパフォーマンスが低下します。 私の質問: 私の推論で何かを逃したことがありますか?私は正しいですか?最後に、SARGabilityに関する優れた記事がある団体はありますか?
11 performance  linq 

2
@table_variableまたは#temp_table
129列の大きなユーザー定義のテーブル型変数があります。このテーブル変数に一度に約2000〜3000個のレコードを格納し、それをさまざまなストアドプロシージャと関数に渡して、追加のデータを取得して変更を加えます。これらの追加データと新しい変更は、同じタイプの新しいテーブル変数に格納され、OUTPUTパラメーターを介してソースストアドプロシージャに返されます。(これは、テーブルタイプのパラメーターをとしてのみ渡すことができるためREADONLYです。) これは私の疑似コードです: SP1 @tmp tableType { INSERT @tmp EXEC SP2 (@tmp) INSERT @tmp EXEC SP3 (@tmp) } @table_variableまたはを使用する必要があり#temp_tableますか?

1
非エンタープライズ版とパフォーマンスのnoexpandヒント
パフォーマンスを上げるには、インデックス付きビューを使用する必要があります。この比較表からわかるように、Standard Editionはインデックス付きビューをサポートしていません。しかしBOLは言う: インデックス付きビューは、SQL Serverのどのエディションでも作成できます。SQL Server Enterpriseでは、クエリオプティマイザーは自動的にインデックス付きビューを考慮します。他のすべてのエディションでインデックス付きビューを使用するには、NOEXPANDテーブルヒントを使用する必要があります。 それでうまくいくでしょう(私はパフォーマンスについて話している) select * from dbo.OrderTotals with (noexpand, index=IXCU_OrderTotals) SQL Server Standardエディションと同様に select * from dbo.OrderTotals エンタープライズ版では? ビューのコードは次のとおりです。 CREATE VIEW dbo.OrderTotals WITH SCHEMABINDING AS select OrderId = r.OrderId , TotalQty = SUM(r.Quantity) , TotalGrossConsid = SUM(r.Price * r.Quantity) , XCount = COUNT_BIG(*) from dbo.Order r …

2
データベースは、トランザクションのどの時点でインデックスを更新しますか?
インデックスとトランザクションの両方が関与する挿入のイベントのシーケンスを理解しようとしています。 たとえば、Oracleのドキュメントには次のように記載されています。 データをロードする前に1つ以上のインデックスを作成[または保持]している場合、データベースは各行が挿入されるたびにすべてのインデックスを更新する必要があります。 しかし、トランザクションを作成し、5つの行を挿入してからコミットするとどうなりますか?挿入ごとにインデックスが更新されますか、それともコミットポイントで更新されますか? これらのレコードがコミットされるまで、更新されたインデックスはおそらく使用できないため、ロジックはそれらがコミットポイントでのみ更新されることを教えてくれます。しかし、それは本当ですか? もしそうなら、挿入する行が1mある場合、最高のパフォーマンスを得るには、100kレコードの10トランザクションではなく、すべての行の1つの大きなコミットを実行する必要がありますか?もちろん、これは、999,999行が失敗した場合にロールバックが大きくなるリスクがあることを理解しています。 私の専門用語が少し出ていればお詫びします。私は貿易ではDBAではありません。私は特定のデータベースにはあまり関心がありません。データベース全般についてですが、私が最もよく使用しているのはOracleとPostgresです。私はこのトピックについて検索しましたが、決定的な答えは本当に見つかりません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.