タグ付けされた質問 「database-tuning」

2
高速テストのためにPostgreSQLを最適化する
典型的なRailsアプリケーションをSQLiteからPostgreSQLに切り替えています。 問題は、PGによりスペックの実行が遅くなることです。 SQLiteでは約34秒、PGでは約76秒で、2倍以上遅くなります。 そこで、コードを変更せずに、SQLiteと同等の仕様のパフォーマンスを実現するためにいくつかの手法を適用したいと思います(理想的には接続オプションを設定するだけで、おそらく不可能です)。 私の頭の上から明らかなことは次のとおりです。 RAMディスク(OSXでRSpecを使用した適切なセットアップは見れば良いでしょう) ログに記録されていないテーブル(データベース全体に適用できるため、すべてのスクリプトを変更する必要はありませんか?) ご存じかもしれませんが、私は信頼性とその他については気にしていません(ここではDBは使い捨てのものです)。 私はPGを最大限に活用し、可能な限り速くする必要があります。 ベストアンサーは、理想的には、それを行うためのトリック、セットアップ、およびそれらのトリックの欠点を説明します。 更新: fsync = off + full_page_writes = off時間のみを〜65秒(〜-16秒)に短縮しました。良いスタートですが、目標の34にはほど遠いです。 アップデート2:私はRAMディスクを使用しようとしましたが、パフォーマンスゲインは誤差の範囲内でした。だから、それだけの価値はないようです。 更新3:* 最大のボトルネックを発見したので、私の仕様はSQLiteの仕様と同じくらい高速に実行されました。 問題は、切り捨てを行ったデータベースのクリーンアップでした。どうやらSQLiteは速すぎます。 「修正」するには、各テストの前にトランザクションを開き、最後にロールバックします。 〜700テストのいくつかの数値。 切り捨て:SQLite-34秒、PG-76秒。 トランザクション:SQLite-17秒、PG-18秒。 SQLiteの2倍の速度向上。PGの4倍の速度増加。

7
Pythonのtimeitでパフォーマンスをテストするためにコードセグメントの時間を計るにはどうすればよいですか?
正常に機能するpythonスクリプトがありますが、実行時間を記述する必要があります。私は使うべきだとググったが、うまく動かtimeitないようだ。 私のPythonスクリプトは次のようになります。 import sys import getopt import timeit import random import os import re import ibm_db import time from string import maketrans myfile = open("results_update.txt", "a") for r in range(100): rannumber = random.randint(0, 100) update = "update TABLE set val = %i where MyCount >= '2010' and MyCount < '2012' …

1
MongoDB JavaドライバーMongoOptionsを本番用に構成するにはどうすればよいですか?
私はWebを検索して、MongoDB JavaドライバーのMongoOptionsを構成するためのベストプラクティスを探していましたが、API以外は思いつきませんでした。この検索は、「com.mongodb.DBPortPool $ SemaphoresOut:Out of semaphores to get db connection」エラーが発生し、接続数/乗数を増やすことで問題を解決できた後に開始されました。本番用にこれらのオプションを構成する際のリンクまたはベストプラクティスを探しています。 2.4ドライバーのオプションは次のとおりです。http: //api.mongodb.org/java/2.4/com/mongodb/MongoOptions.html autoConnectRetry connectionsPerHost connectTimeout maxWaitTime socketTimeout threadsAllowedToBlockForConnectionMultiplier 新しいドライバーにはより多くのオプションがあり、それらについても聞きたいです。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.