問題タブ [database-performance]
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.
database-performance - Sybaseテーブルから大量のデータを選択的に削除する
これにSybaseASE15を使用する-定期的にテーブルから削除する行が約大量(最大10 mil)ありますが、テーブルに追加された最新のデータの選択を保持したいので、ルールテーブル上で直接切り捨てを使用します。
上記の削除の使用は非常に遅いので、私の戦略は、保持したいデータを一時テーブルに移動し、マスターテーブルを切り捨てて、データを一時テーブルから再度移動することです。
これでほぼ十分です。1と2のパフォーマンスは優れていますが、マスターへの挿入が遅すぎます。
したがって、私の質問は、次のいずれかをすばやく実行する方法があるかどうかに要約されます。
または、私は別のアプローチを受け入れています!
database - データベースにとって大きすぎるのは何ですか?
車を売りに出すための Web アプリを運営している仲間がいます。それを使用する数千のクライアントがあり、各クライアントのデータベースには数百、場合によっては数千の行があります (毎月数百台の車が販売され、販売ごとに数十行 (コメント、メッセージ、等))。彼はこのシステムを 1 台の SQL Server データベースで 1 台の物理サーバーで実行し、20 GB または RAM と数個のプロセッサを搭載し、問題なく実行しました。これはある種の奇跡ですか?
ほとんどのプログラマーと同じように、私は DBA ではなく、ORM などのおかげで何とかやってのけています。どこを見ても、Web アプリの大規模なユーザーのために、シャード化または別のデータベース サーバーを取得する必要があるという話があります。どうしてこれなの?大量または行を含む大規模な DB を持つことは、本当に効率が悪いのでしょうか? Cassandra か何かを使用する予定ですか、それとも Postgres で適切にスケールアップすることに頼ることができますか?
database-design - データベース設計 - 効率 (および一般的な設計品質) に関する質問
自分が何をしているのかわからないのではないかと心配しています。
1:
ticket
という列を持つ というテーブルがありますtotal
。合計が更新されたら、その記録 (古い合計など) を保持したいので、列を削除して、列、、およびtotal
という名前のテーブルを作成することにしました(もちろん、最新のものは「現在の」合計です)。 .ticket_total
ticket_id
total
datetime
また
2:
その後、クライアントが でチケットをソートしたり、合計を集計するレポートを取得したりできるようにしたいと後で気付きました。そのため、代わりに列をにtotal
戻し、合計がが更新されますが、まず前のレコードとして行を作成します。total
ticket
total
ticket_total
total
バージョン 2 は、関連するテーブルをクエリする必要があまりないため、非常に効率的であるように思われますが、ticket_total
DB の達人はどう思うでしょうか。私はちょうどデータベースの設計を学んでいて、それが得意になることはないのではないかと恐れています。
asp.net - プログラムによるバインディングと パフォーマンスのためのオブジェクトデータソース
私は自分のページで(それが不可能でない限り)を使用してすべてGridViews
をバインドするなどを使用しました。最近、私はすべてのコントロールをプログラムでバインドし始めました。一部の人は同意しないかもしれませんが、私はこれがはるかにクリーンで簡単だと思います。DetailViews
ObjectDataSource
ObjectDataSource
プログラムで行うのと同様に、明らかにバインドには長所と短所があります。
GridViewをプログラムでバインドするとします(たとえばGridView1.DataSource = SomeList
)。GridViewのページを変更するときは、これもコーディングする必要があります。ページが変わるたびに、GridView1.DataSource = SomeList
もう一度電話する必要があります。明らかに、ObjectDataSource
私はこれを行う必要はありません。私は通常、SomeList
オブジェクトをViewStateに貼り付けているので、ページを変更するときに毎回データベースにアクセスする必要はありません。
私の質問は:これはObjectDataSourceがどのように機能するのですか?データをViewStateに保存し、.Select
メソッドを呼び出さない限りデータベースに再度アクセスしませんか?私は自分のアプリケーションから最高のパフォーマンスを引き出し、データベースにできるだけ少ない回数アクセスするのが好きですが、ViewStateに巨大なリストを保存するというアイデアはあまり好きではありません。これを行うためのより良い方法はありますか?ユーザーごとのキャッシュは良い考えですか(または可能ですか)?巨大なリストをViewStateに保存する代わりに、毎回データベースにアクセスするだけでよいでしょうか。ViewStateを使用するよりも、データベースにアクセスする方が良い場合がありますか?
database - SQLite の固定幅列から読み取る方が高速ですか?
varchar やその他の可変長データが保存されていないテーブルから読み取る方が、一般的に高速でしょうか? MySQL では、行がディスク上のどこに格納されるかを正確に計算できるため、これは高速です。
mysql - サーバーは毎秒いくつのMySqlクエリを処理できますか?
ブラウザ (データベース) ゲームの開発を開始しました。私の質問は、通常のホスティングで処理できるクエリの数です (通常の場合、月額約 7 ドルで見つけることができる共有ホスティングを意味します)。クエリに関しては、複雑なことは何もありません (単純な SELECT および WHERE 操作)。
そう... ?10? 100 ? 10000?
database - PostgreSQLでカーソルを使用した更新のパフォーマンス
次の方法を使用してテーブルを更新する場合のパフォーマンスの違いを知りたいです。
またはこのように:
誰かがこれをテストしたか、カーソルを使用した更新がどのように機能するかを知っているので、これについてコメントできますか?
編集:私はこれをベンチマークし、最新の例を実行する方が実際には約3分の1速いことがわかりました。私は各クエリを100000回実行し、違いの時間を計りました。サーバーサイドカーソルを使用してpsycopg2を使用してPostgresと通信しました。さらに調査して、これが常に当てはまるとは限らないことを確認できるかどうかを確認します。
database - Postgres: カーソルを使用した更新で驚くべきパフォーマンス
次の 2 つの Python コードの例を考えてみましょう。これらは同じことを実現しますが、パフォーマンスには驚くほど大きな違いがあります。
と:
テーブル テストの create ステートメントは次のとおりです。
そして、そのテーブルには 100000 行と VACUUM ANALYZE TEST が含まれています。実行されました。
いくつかの試行で一貫して次の結果が得られました。
最初のコード例:
2 番目のコード例:
これは私にとって非常に驚くべきことです。これは正反対である必要があると思います。つまり、この回答によると、カーソルを使用した更新が大幅に高速になるはずです。
database - データ ウェアハウスのパフォーマンスをテストする最良の方法は?
Postgresql に基づくデータ ウェアハウスがあります。
これまで、実際のデータベースのほんの一部を含むデータベースに対してクエリを実行しようとしてきました。この小さなテスト データベースで効率的にクエリを作成したら、実際のデータベースでクエリを実行します。
問題は、実際のデータベースでクエリを実行すると、実際のデータベースがメモリ不足になり、インデックスや一時テーブルなどをディスクに書き始めることです。これは、テスト データベースと実際のデータベースに最適なクエリが異なる可能性があることを意味します。これは、どのクエリが最適かを知るために、完了するまでに数分かかるクエリを実際に実行する必要があることを意味しますか?
database - PostgreSQL:なぜこの単純なクエリはインデックスを使用しないのですか?
列cを持つテーブルtがあります。これは、intであり、btreeインデックスがあります。
次のクエリがこのインデックスを利用しないのはなぜですか?
私が得る結果は次のとおりです。
インデックスについての私の理解は限られていますが、そのようなクエリはインデックスの目的だと思いました。