問題タブ [database]

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.

0 投票する
6 に答える
18419 参照

database - DBアプリケーションの監査証跡/変更履歴を残すための効果的な戦略は?

かなり複雑なデータベースでデータの変更履歴を維持するために人々が成功したいくつかの戦略は何ですか. 私が頻繁に使用して開発しているアプリケーションの 1 つは、レコードが時間の経過とともにどのように変化したかを追跡するためのより包括的な方法から本当に恩恵を受ける可能性があります。たとえば、現在、レコードには多数のタイムスタンプと変更されたユーザー フィールドを含めることができますが、操作がロールバックされた場合など、複数の変更をログに記録するためのスキームは現在ありません。完璧な世界では、保存などのたびに記録を元どおりに再構築することができます.

DBに関するいくつかの情報:

  • 1 週間に数千件のレコードを処理できる容量が必要
  • 50~60台
  • メインの改訂されたテーブルには、それぞれ数百万のレコードがある場合があります
  • 適切な量​​の外部キーとインデックス セット
  • PostgreSQL 8.x の使用
0 投票する
7 に答える
759 参照

database - 開発者は、データベース システムの詳細をどの程度学べばよいですか?

今日の最新のデータベース システムには、さまざまな機能が搭載されています。そして、あるデータベースを学ぶには、別のデータベースで学んだ概念を忘れなければならないという私に同意するでしょう. たとえば、各データベースは他のデータベースとは異なる方法でロックを実装します。したがって、あるデータベースの概念を別のデータベースに持ち込むことは、失敗のレシピになります。また、2 つのデータベースのパフォーマンスが非常に異なる例が他にもある可能性があります。

では、データベース駆動型システムを開発している間、プログラマーはパフォーマンスのためにコーディングできるように、データベースを詳細に知る必要があるのでしょうか? DBA の仕事は、データベースを維持し、緊急時に開発者を支援することだけであり、定期的なものではないため、DBA に後でパフォーマンスを求めるのは適切ではないと思います。

開発者がデータベースについての洞察を得るために必要な範囲はどの程度であるべきだと思いますか?

0 投票する
4 に答える
775 参照

sql-server - データベースから既存のデータを選択してテストデータを作成します

いくつかのテストデータを手動で入力したSqlServerデータベースがあります。ここで、このテストデータを挿入ステートメントとして抽出し、ソース管理にチェックインしたいと思います。他のチームメンバーが同じデータベースを作成し、作成した挿入スクリプトを実行し、同じデータをテストおよび開発できるようにする必要があるという考え方です。

これを行うための優れたツールはありますか?ここで説明するように、データを生成するためのツールを探していません

0 投票する
6 に答える
13303 参照

database - データベースに国際住所を保存するための「最良の」方法は何ですか?

データベースに国際住所を保存するための「最良の」方法は何ですか?スキーマの形式で回答し、自分が行った方法を正規化する(またはしない)ことを選択した理由を説明します。また、各フィールドのタイプと長さを選択した理由も説明してください。

注:必要と思われるフィールドはユーザーが決定します。

0 投票する
3 に答える
451 参照

database - ストアド プロシージャとタイムアウト

長いプロセスのストアド プロシージャを実行しています。

ストアドプロシージャの呼び出しを開始した後、タイムアウトまたはデータベースとの接続が切断された場合に備えて、私は疑問に思っています。それはまだ機能しており、サーバーに変更を実装していますか?

0 投票する
3 に答える
339 参照

database - さまざまな usermetadata タグの最新のものをユーザー行に結合する

user テーブル (userid、firstname、lastname) と usermetadata テーブル (userid、code、content、created datetime) を持つ postgres データベースがあります。各ユーザーに関するさまざまな情報をコードで usermetadata テーブルに保存し、完全な履歴を保持します。たとえば、ユーザー (userid 15) には次のメタデータがあります。

すべてのユーザーのリストと、さまざまなユーザーメタデータ コードのそれぞれの最新の値を取得する必要があります。私はこれをプログラムで行いましたが、もちろん非常に遅いものでした。SQL でそれを行うために私が見つけた最善の方法は、副選択を結合することでしたが、これも遅く、コードごとに 1 つ実行する必要がありました。

0 投票する
27 に答える
2970989 参照

sql - ... 値に挿入 ( SELECT ... FROM ... )

INSERT INTO別のテーブルからの入力を使用してテーブルを作成しようとしています。SQLこれは多くのデータベース エンジンで完全に実行可能ですが、現在のエンジン ( MySQLOracleSQL ServerInformix、およびDB2 )の正しい構文を覚えるのにいつも苦労しているようです。

基になるデータベースを気にせずに値を挿入できる、SQL 標準 ( SQL-92など)からの特効薬の構文はありますか?

0 投票する
2 に答える
353 参照

database - 検索パフォーマンスにおいて、データ圧縮はインデックス作成よりもどのように効果的ですか?

このアプリケーションでは、3 つの整数列 (ソース、タイプ、時間) によってインデックス付けされた大量のデータを保持します。そのデータのかなりのチャンクを読み込むには時間がかかる場合があります。私たちは、高解像度を必要としないクエリのために大きな粒度を保存するなど、より大きなクエリのために検索して読み込む必要があるデータの量を減らすために、さまざまな対策を実装しました (時間-賢い)。

データは bzip 圧縮されたテキスト ファイルに保存されていますが、基本的に同じ構造を持っているバックアップ アーカイブ内のデータを検索すると、ディスクに展開して grep するよりも、stdout に展開して grep でパイプする方がはるかに高速であることに気付きました。ファイル。実際、圧縮されていないファイルを grep するよりも、tar からパイプへの展開の方がはるかに高速でした (つまり、tar からディスクへの展開を割り引きます)。

これにより、ディスク I/O のパフォーマンスへの影響は、実際には思ったよりもはるかに重いのではないかと考えました。だからここに私の質問があります:

複数行のデータを単一行の (圧縮された) BLOB フィールドに入れ、抽出中にその場で単一行を検索する方が、テーブル インデックスを介して同じ行を検索するよりも高速になると思いますか?

たとえば、このテーブルを持つ代わりに

してただろう

クイックデータの各行に約 100 ~ 300 行のデータがあり、ブロブ フィールドの解凍およびデコード中にその場で目的のタイムスタンプを検索します。

これはあなたにとって意味がありますか?どのパラメータを調査する必要がありますか? どのような文字列が接続される可能性がありますか? 同様の効果を達成するために、どのような DB 機能 (任意の DBMS) が存在しますか?

0 投票する
7 に答える
1972 参照

mysql - データベース内のデータをバックアップするための rake タスクはありますか?

データベース内のデータをバックアップするための rake タスクはありますか?

既にスキーマをバックアップしていますが、データのバックアップを作成したいと考えています。これは小さな MySQL データベースです。

0 投票する
2 に答える
37786 参照

sql-server - 接続文字列でタイムアウトが受け入れられない

実行したい実行時間の長い SQL ステートメントがあり、接続文字列の "timeout=" 句に何を入力しても、常に 30 秒後に終了するようです。

私はSqlHelper.ExecuteNonQuery()それを実行するために使用しているだけで、接続を開くなどの処理を任せています.

タイムアウトを無効にしたり、SQL サーバーに無視させたりする可能性のあるものは他にありますか? クエリに対してプロファイラーを実行しましたが、管理スタジオで実行した場合とコードで実行した場合のトレースに違いはありません。

Management studio はクエリを約 1 分で完了しますが、タイムアウトを 300 または 30000 に設定しても、私のコードは 30 秒後にタイムアウトします。