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

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

15
MySQLは数十億行に対して合理的にクエリを実行できますか?
MySQLデータベースに質量分析計からのスキャンを保存することを計画していますが、この量のデータの保存と分析がリモートで実行可能かどうかを知りたいです。パフォーマンスは環境によって大きく異なることがわかっていますが、大まかな順序を探しています:クエリには5日または5ミリ秒かかりますか? 入力形式 各入力ファイルには、分光器の単一の実行が含まれています。各実行は一連のスキャンで構成され、各スキャンには順序付けられたデータポイントの配列があります。少しのメタデータがありますが、ファイルの大部分は32ビットまたは64ビットのintまたはfloatの配列で構成されています。 ホストシステム | ---------------- + ------------------------------- | | OS | Windows 2008 64ビット| | MySQLバージョン| 5.5.24(x86_64)| | CPU | Xeon E5420 x 2(合計8コア)| | RAM | 8GB | | SSDファイルシステム| 500 GiB | | HDD RAID | 12 TiB | | ---------------- + ------------------------------- | 無視できるプロセッサー時間を使用して、サーバーで実行されている他のサービスがいくつかあります。 ファイル統計 | …

7
大規模なデータベースのmysqldumpを最適化するにはどうすればよいですか?
57テーブルで最大2GBのInnoDBデータベースを使用するsymfonyアプリケーションがあります。データベースのサイズの大部分は、単一のテーブル(〜1.2GB)にあります。現在、mysqldumpを使用してデータベースを夜間にバックアップしています。 コムキャスト接続のため、多くの場合、手動でダンプを実行している場合、ダンプが完了する前にサーバーへの接続がタイムアウトし、ダンプを再実行する必要があります。[現在、毎晩ダンプを実行するcronを実行しています。これは、手動で実行するダンプ用です。] 接続タイムアウトの問題のダンプを高速化する方法はありますが、サーバーがこのプロセスで占有される時間を制限する方法はありますか? ところで、私は現在、この問題を解決するためにデータベース全体のサイズを縮小することに取り組んでいます。

5
MySQLに複数のコアを使用させることは可能ですか?
単一のコア以上を使用しない専用のMySQLサーバーをいくつか紹介しました。私はMySQLのDBAよりも開発者なので、助けが必要です セットアップ サーバーは、OLAP / DataWarehouse(DW)タイプのロードでは非常に大きくなります。 プライマリ:96GB RAM、8コア+シングルRAID 10アレイ テスト:4コアの32GB RAM 最大のDBは540 GBで、合計は約1.1TBで、ほとんどがInnoDBテーブルです Solaris 10 Intel-64 MySQL 5.5.x 注:最大のDBはOLTP DRサーバーから複製されたものであり、DWはこれからロードされます。完全なDWではありません。6か月から6週間で終了するため、OLTP DBよりも小さくなります。 テストサーバーでの観察 3つの個別の接続 それぞれに同時(および異なる)があります ALTER TABLE...DROP KEY...ADD INDEX 3つのテーブルには250万行、380万行、450万行があります CPU使用率は最大25%になり(1つのコアが最大になります)、それ以上はなりません 3回のALTERには12〜25分かかります(最小の1つに4.5分かかります)。 ご質問 複数のコアを使用するには、どのような設定またはパッチが必要ですか? つまり、なぜMySQLは利用可能なすべてのコアを使用しないのですか?(他のRDBMSと同様) レプリケーションの結果ですか? その他の注意事項 RDBMS「スレッド」とOS「スレッド」の違いを理解しています 私はどんな形の並列性についても尋ねていません InnoDBとスレッドのシステム変数のいくつかは次善の策です(クイックウィンを探しています) 短期的には、ディスクレイアウトを変更できません 必要に応じてOSを調整できます 最小のテーブル上の単一のALTER TABLEには4.5分かかります(IMOに衝撃を与えます) 編集1 innodb_thread_concurrencyは両方で8に設定されます。はい、間違っていますが、MySQLが複数のコアを使用することはありません innodb_buffer_pool_sizeはプライマリで80GB、テストで10GBです(別のインスタンスはシャットダウンされます)。これは今のところ大丈夫です。 innodb_file_per_table = ON 編集2 innodb_flush_log_at_trx_commit …

6
インデックスが必要か必要かを判断する方法
MS SQLデータベースで自動インデックスツールを実行しました(インデックス統計テーブルを参照するMicrosoftのスクリプトを変更しました- 自動自動インデックス作成)。統計から、作成する必要のあるインデックスの推奨事項のリストができました。 編集: 上記のインデックスは、データベースエンジンがインデックスに使用できるものを示すDMVから情報を取得し、スクリプトはTop xの推奨事項(シーク、ユーザーへの影響など)を取得し、テーブルに入れます。 (スクリプトが何をしているのかを明確にするために、下のラリー・コールマンの回答から部分的に取った上記の編集) 私はデータベース管理者が初めてであり、ネット上で簡単に検索したので、思い切って推奨インデックスを盲目的に追加することに消極的です。ただし、この分野での経験がないため、推奨事項が必要かどうかを判断する方法についてのアドバイスを探しています。 SQLプロファイラを実行する必要がありますか、それともテーブルをクエリするコードを調べる方が良いですか?他にアドバイスはありますか?

7
GUID対INT-主キーとしてどちらが良いですか?
私は使用する理由としない理由について読んGuidでいintます。 int小さく、速く、覚えやすく、時系列を保持します。そして、Guid私が見つけた唯一の利点は、それがユニークであることです。どちらの場合、a Guidはa よりも優れており、intその理由は? 私が見たものからint、多くの場合、無関係である数の制限を除いて、欠陥はありません。 なぜ正確にGuid作成されたのですか?実際には、単純なテーブルの主キーとして機能する以外の目的があると思います。(Guid何かに使用する実際のアプリケーションの例は?) (Guid = UniqueIdentifier)SQL Serverのタイプ

8
LIKE、SIMILAR TO、またはPostgreSQLの正規表現を使用したパターンマッチング
BまたはDで始まる人の名前を探す単純なクエリを作成する必要がありました。 SELECT s.name FROM spelers s WHERE s.name LIKE 'B%' OR s.name LIKE 'D%' ORDER BY 1 パフォーマンスを向上させるためにこれを書き換える方法があるかどうか疑問に思っていました。だから私は避けることができますor/またはlike?

3
複合インデックスは、最初のフィールドのクエリにも適していますか?
フィールドAとを持つテーブルがあるとしましょうB。A+ Bで定期的にクエリを作成するため、で複合インデックスを作成しました(A,B)。クエリAも複合インデックスによって完全に最適化されますか? さらに、にインデックスを作成しましたAが、Postgresはでのみクエリに複合インデックスを使用していAます。前の答えが正の場合、それは実際には重要ではないと思いますが、単一のAインデックスが利用可能な場合、デフォルトで複合インデックスを選択するのはなぜですか?

4
PostgreSQLテーブルの行のサイズを測定する
PostgreSQLテーブルがあります。素晴らしくて速いのselect *に対し、非常に遅いselect idです。行のサイズが非常に大きく、転送に時間がかかっているか、または他の要因である可能性があります。 すべてのフィールド(またはほとんどすべてのフィールド)が必要なので、サブセットを選択するだけでは簡単に修正できません。必要なフィールドの選択がまだ遅いです。 以下に、テーブルスキーマから名前を除いたものを示します。 integer | not null default nextval('core_page_id_seq'::regclass) character varying(255) | not null character varying(64) | not null text | default '{}'::text character varying(255) | integer | not null default 0 text | default '{}'::text text | timestamp with time zone | integer | timestamp with time …

4
<>と!=がSQL Serverのパフォーマンスで同一である信頼できるソース
SO に関するこの回答を検討してください。これにより、&lt;&gt;オペレーターに関する質問者は次のことを安心できます。 &lt;&gt;は...と同じ!=です。 しかし、その後、コメンターがパイプを使って言います: 機能的には同じであることは事実です。ただし、SQLオプティマイザーがそれらを使用する方法は大きく異なります。= /!=は単純にtrue / falseとして評価されますが、&lt;&gt;はエンジンが値がより大きいか小さいかを調べて確認する必要があることを意味し、パフォーマンスのオーバーヘッドが大きくなります。高価なクエリを作成する際に考慮すべき点があります。 私はこれが間違っていると確信していますが、潜在的な懐疑論者に対処するために、これらの演算子が単に機能的に同じではなく、すべての面で同一であることを証明するための信頼できるソースまたは正規のソースを提供できる人はいないでしょうか?

2
1つの大きなクエリまたは複数の小さなクエリの高速化とは何ですか?
私はさまざまな企業で働いていますが、一部の企業は、すべての「相対」テーブルを結合するビューを持つことを好むことに気付きました。しかし、その後、アプリケーション上で使用する必要があるのは1列のみです。 それでは、単純な選択を行い、それをシステムコードで「結合」する方が速いでしょうか? システムは、php、java、asp、データベースに接続する任意の言語です。 だから問題は、サーバー側(php、java、asp、ruby、python ...)からデータベースに行く方が速いか、必要なものをすべて取得する1つのクエリを実行するか、サーバー側からデータベースに移動して一度に1つのテーブルから列のみを取得するクエリ?

4
インデックスシークとインデックススキャン
実行速度の遅いクエリの実行プランを見ると、ノードの一部がインデックスシークであり、一部がインデックススキャンであることがわかりました。 インデックスシークとインデックススキャンの違いは何ですか? どちらがパフォーマンスが良いですか? SQLはどのように一方を選択しますか? これは3つの質問ですが、最初の質問に答えると他の質問も説明できると思います。

3
固定サイズのフィールドでCHARとVARCHARを使用すると、パフォーマンスにどのような影響がありますか?
MD5ハッシュを格納するインデックス列があります。したがって、列には常に32文字の値が格納されます。何らかの理由で、これはcharではなくvarcharとして作成されました。データベースを移行してcharに変換する手間をかける価値はありますか?これは、InnoDBを使用したMySQL 5.0にあります。

6
シングルスレッドデータベースとマルチスレッドデータベースのパフォーマンスについて
H2は、パフォーマンスに関して高い評価を得ているシングルスレッドデータベースです。他のデータベースはマルチスレッドです。 私の質問は、いつマルチスレッドデータベースがシングルスレッドデータベースよりも興味深いものになるのかということです。ユーザー数は?プロセスはいくつですか?トリガーは何ですか?誰もが共有する経験がありますか? 概要 通常のボトルネックはディスクアクセスです SSDは高速ですが、壊れやすい(故障手順は必須です) シングルスレッドシステムでの1つの長いクエリは、他のすべてをブロックします マルチスレッドシステムの構成は難しい場合があります マルチスレッドデータベースは、シングルコアシステムでも有益です。


7
マテリアライズドビューの代わりにテーブルを使用しないのはなぜですか?
Oracleデータベースは初めてです。私が正しく理解している場合、マテリアライズドビューは結果セットがデータベースの物理テーブルとして保存されているビューであり、このビュー/テーブルは何らかのパラメーターに基づいて更新されます。ビューが物理テーブルとして保存されている場合、最初にテーブルにデータを保存してみませんか?それでは、テーブルの代わりにマテリアライズドビューを使用する利点は何ですか?

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