データベース管理者

データベースのスキルを向上させ、コミュニティの他の人から学びたいデータベースの専門家向けのQ&A

2
bakファイルをより小さいmdfおよびldfデータベースファイルに復元する
私はレガシーデータベースの設計に悪夢のような欠如があるので、ここでは触れませんが、サーバー上のファイルは(比較的)巨大です。私が持っています: MyDatabase.mdf:24.8GB MyDatabase.ldf:114.6GB このデータベースは毎晩.bakファイルにバックアップされ、レポートサーバーに送られ、そこで復元されます。.bakファイルは、わずか1.8 GBと非常に小さくなります。 ただし、レポートサーバーで復元しようとすると、スペース不足のため失敗します。サーバーには約100GBの空き容量があり、元のサーバーでファイルが消費した139.​​4GB全体を消費しようとしています。圧縮に関する私の知識がひどく間違っているのでない限り、1.8 GBのファイルが実際に7400%拡大されていないことにはかなりの自信があります。 私の質問:そのスペースを事前に予約せずにこのバックアップファイルを復元するようにSQL Serverに指示する方法はありますか?ログは気にしません。そこにデータが必要です。開発とスキーマの観点からデータベースを理解していますが、私は決してDBAの一種ではありません。 これはSQL Server 2008 R2にあります。助けや提案をありがとう。

3
mongodbに時系列を保存するにはどうすればよいですか
時系列のデータベースを作成し、次のタスクを実行する必要があります。 新しい時系列を作成する 既存の時系列を更新する 一度に1つまたは複数の時系列をクエリします(たとえば、同じ日付のすべての時系列など)。 Mongoはそれに適合していますか?適合している場合、データベースをどのように構成すればよいですか?(1つのタイムセリエ= 1つのドキュメント?または1つのドキュメント=タイムセリエの1つのエントリ。これらのすべてのドキュメントは、時系列全体であるコレクションを形成しますか?) 私はここで少し迷っています。通常、Mongoは非常に柔軟であり、ユーザーがインフラストラクチャで選択できるため、情報を見つけるのが困難です。 Mongoで時系列を管理する方法を具体的に説明するチュートリアルへのリンクは大歓迎です。 ありがとうございました!
11 mongodb 

2
SQL Serverレプリケーションを実装する時が来たことを示す客観的要因は何ですか?
データベースの高いパフォーマンスとメンテナンスの容易さのバランスをとろうとしています。レプリケーションを使用してパフォーマンスを向上させることを検討しています。SSRSレポートをトランザクションデータベースとは物理的に別のデータベースにレプリケートすることです。ただし、レプリケーションを有効にすることには、開発者の観点から多くの欠点があります。 スキーマの変更が困難になります 自動統合/ビルドサーバーを妨害する SQLソース管理の実装が難しくなっているようです 私の質問は次のとおりです。これらの欠点を考慮して、レプリケーションに移行する時期がいつになると思いますか 追加の複雑さが利益を正当化するかどうかをどのように決定しますか? 以前に使用したことがあるので、設定は問題ありません。これは、それを有効にするかどうかを決定することに関するものです。他の人がレプリケーションで観察したいくつかのオブジェクトパフォーマンスメトリックを探しています。 もちろん、最善のことは、私たち自身のサーバーでいくつかのシミュレートされた負荷テストを行い、それを自分で理解することですが、私はそこにいくつかの一般的なガイドラインがあることを望んでいます。

5
MS Accessの完全外部結合
私には2つのスタッフリストがあります。 List A: StaffID Supervisor ==================== 0001234 NULL 0001235 0001234 0001237 0001234 0001239 0001237 そして List B: StaffID Supervisor ==================== 0001234 NULL 0001235 0001234 0001238 0001235 0001239 0001235 そして、私は次の出力が必要です: StaffID SupervisorA SupervisorB =================================== 0001234 NULL NULL 0001235 0001234 0001234 0001237 0001234 NULL 0001238 NULL 0001235 0001239 0001237 0001235 リストAとリストBのスタッフIDが1つの繰り返しのないリストにマージされ、2つのリスト間で一致しない可能性がある2つの監督者の詳細がマージされていることに注意してください。 クエリは優れている必要はありません。各リストに最大8000件のレコードがあり、うまく実行できます。その後、必要に応じてExcelのマイナーな操作を行ってよかったです。 …
11 query  join  ms-access 

3
Oracleでsequence.nextvalをnullにするにはどうすればよいですか?
私はそのように定義されたOracleシーケンスを持っています: CREATE SEQUENCE "DALLAS"."X_SEQ" MINVALUE 0 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 0 NOCACHE NOORDER NOCYCLE ; ストアドプロシージャでレコードを挿入するために使用されます。 PROCEDURE Insert_Record (p_name IN VARCHAR2, p_userid IN INTEGER, cur_out OUT TYPES_PKG.RefCursor) IS v_id NUMBER := 0; BEGIN -- Get id value from sequence SELECT x_seq.nextval INTO v_id FROM dual; -- Line …
11 oracle  sequence 

2
オブジェクトテーブルに存在しないように見えるオブジェクトを見つけるにはどうすればよいですか?
というオブジェクトがありますcot_ntn_pi_v。これは同義語だと言われました。all_synonymsテーブルには表示されません。ビューまたはテーブルのように見えますが、すべてのオブジェクトのテーブルにはありません。そこから選択できますが、「存在しない」ためドロップできず、「この名前はすでに別のオブジェクトで使用されています」と同じ名前で新しいテーブルを作成できません。 私は怒っていますか、それとも本当に愚かなことをしていますか?

1
請求書の生成と追跡
2週間ごとに、システムは会社の請求書を生成します。 会社は毎月1日と16日に請求書を受け取ります。(2週間ごとにCron Jobを介して実行されます。注文テーブルをスキャンし、「請求書」テーブルに追加します。別の方法はありますか?) 表には顧客の注文のリストがあり、ordersそれが所属する会社も示しています(orders.company_id) invoiceテーブルには、からの注文の総コスト計算orders表を。 私は、合理的な請求書追跡を設計する方法を理解しようとしています。会社によっては料金を送ってくれる場合もあれば、料金を送ってくれる場合もあります(invoice.amount) 次のもので請求書を追跡する必要があります。 会社が私に金額を送ったとき いつ会社に送金しましたか 会社から受け取った金額 会社にいくら送ったか 全額を受け取りましたか(受け取っていない場合、DBで何を更新する必要がありますか?) 請求書のステータス(送信済み、キャンセル済み、受領済み金額、送信済み金額) ここに私が思いついたデータベース設計があります: 会社のテーブル mysql> select * from company; +----+-----------+ | id | name | +----+-----------+ | 1 | Company A | | 2 | Company B | +----+-----------+ 顧客は私のウェブサイトから会社を選択できます。 注文表 mysql> select * from orders; +----+---------+------------+------------+---------------------+-----------+ | id …

2
Cassandraで多数(数千)の列ファミリーまたはキースペースを使用することのペナルティは何ですか?
現在、Cassandraのインストールに最適な設計を評価しています。 Cassandraが提供する最初の2つのアクセスレベル、つまりキースペースと列ファミリーの使用については、インターネットにはそれほど多くの情報はありません。 大量のキースペースまたは列ファミリー(> 10.000)を作成することを選択した場合、ペナルティはどのようなものになるのでしょうか。 どこか古いブログ投稿で、Cassandraが各列ファミリー用にメモリを予約することが示唆されました。この記事は0.6バージョンに関するもので、現在のバージョンは1.0です。これはまだ事実であり、本当の問題ですか? Cassandraで何千もの列ファミリーまたはキースペースを使用することのペナルティは何ですか?


2
データフォルダーを移動してmysql centosをドライブする
データを別のフォルダーに移動して、cent os dbサーバーでドライブする必要があります。 新しいハードドライブを追加しました(スペースが不足したため)。 1 TBのハードドライブがあり、新しい2 TBがあり、同じサーバー(データセンターでホストされている専用サーバー)にデータを配置したい データを失うことなくデータを移行する簡単な方法は何ですか? 現在私は次の場所にデータを持っています:/var/lib/mysql/cent os。mysql version is 5.1
11 mysql 

3
mysqlが最大接続値を自動調整する
my.cnfファイルで最大接続数を約2000に設定しました。 max_connections=2048 5.5.20にアップグレードしたら、エラーログに次の行が表示されます。 120201 19:40:24 [Warning] Changed limits: max_open_files: 1024 max_connections: 214 table_cache: 400 mysqlが最大接続数の値を214に変更したのはなぜですか? # mysqladmin variables | grep max_connections | max_connections | 214 OSによって制限されたソフトおよびハードオープンファイルは1024です # ulimit -Sa | grep "open files" open files (-n) 1024 # ulimit -Ha | grep "open files" open files (-n) 1024 実際に使用された最大接続数: # …
11 mysql 

2
ユーザー定義のテーブルタイプを含むsp_executesqlが正しく動作しない
問題:sp_executesqlへのパラメーターとしてユーザー定義のテーブルタイプに既知の問題がありますか?回答-いいえ、私はばかです。 スクリプトを設定する このスクリプトは、テーブル、プロシージャ、ユーザー定義のテーブルタイプをそれぞれ1つ作成します(制限付きのSQL Server 2008以降のみ)。 ヒープの目的は、はい、データがプロシージャに入ったという監査を提供することです。制約はなく、データの挿入を妨げるものはありません。 このプロシージャは、ユーザー定義のテーブルタイプをパラメータとして受け取ります。プロシージャが行うことはすべて、テーブルに挿入することです。 ユーザー定義のテーブルタイプも同様に単純で、単一の列です 私は以下に対して実行しました、11.0.1750.32 (X64) そして、10.0.4064.0 (X64)はい、私はボックスにパッチを当てることができることを知っています、それを制御しません。 -- this table record that something happened CREATE TABLE dbo.UDTT_holder ( ServerName varchar(200) , insert_time datetime default(current_timestamp) ) GO -- user defined table type transport mechanism CREATE TYPE dbo.UDTT AS TABLE ( ServerName varchar(200) ) GO -- stored …

2
大量トランザクションおよびデータウェアハウジング用のPostgreSQL
PostgreSQLは非常に新しいので、これを使用して大規模な展開を行ったことはありません。しかし、私はエンタープライズソリューションの経験が豊富で、PostgreSQLを使用して学んだことの一部を試して適用したいと思っています。 大量のデータとトラフィックを処理できるサイズのサイトがあります。インフラストラクチャは、EC2インスタンスとEBSボリュームを使用してAmazon(AWS)で構築されます。 設計には、分析とレポートを処理するための2つのデータベース、メイントランザクションデータベースとデータウェアハウスが必要です。 メインのトランザクションデータベース ライブWebサイトに使用されます。サイトは複数のノードで構築され、同時ユーザーをスケールアップします。このケースでは、主にデータベースの読み取り操作が非常に高速であることが必要です。100GBを超えるデータで年間30%の成長が見込まれます。この時点で、2つのEC2サーバーを使用する予定です(必要に応じて後で追加します)。 私の質問、上記の要件の推奨設定は何ですか?さらに、テーブルとボリュームのパーティション分割を管理する方法はありますか?AWSセットアップの使用に関する推奨事項はありますか? データウェアハウスデータベース 主に、時間ディメンションでメインのトランザクションデータベースからすべてのデータをキャプチャするために使用されます。そのため、メインデータベースから削除されたレコードでもDWHにキャプチャされます。したがって、データは非常に大きくなり、成長はさらに大きくなります。必要に応じて、EC2インスタンスのカップル以上も使用します。 この場合の推奨設定は何ですか?定数書き込み(ETL)のため、高速書き込み操作が必要になります。PostgreSQLでOLAPキューブを構築できますか?はいの場合、誰かが試してみましたか? データベースに接続する Webサーバーはメインデータベースに接続してクエリと書き込みを行います。現在、接続にネイティブライブラリを使用するdjangoを使用するアプリケーションを開発しています。同じ基本的な方法を使用することをお勧めしますか?または、pgpoolを設定する必要がありますか? データウェアハウス(ETL) メインから読み取り、データウェアハウスに読み込むETLプロセスを構築するための推奨される方法は何ですか?ツールはありますか?従うべき方法論?PostgreSQLはETLプロセスの構築に役立つ機能/ツールを提供していますか?

3
MySQLステータス変数Handler_read_rnd_nextは大きく成長しています
MYSQLステータスでは、Handler_read_rnd_next値が非常に高くなっています。 この値は、適切なインデックスを持たないクエリが実行されると増加することを認識しています。 ただし、「Handler_read_rnd_next」のようなshow statusを実行しても、この値は2ずつ増加します。 このステータスフラグに基づいて、いくつかの統計情報を監視しています。 そのため、毎回、この統計は重要を示しています。 これらの「表示」実行カウントを「Handler_read_rnd_next」カウントから除外できますか? このためのもう1つの例は、 10行のテーブルがあり、テーブルは列 'data'にインデックスが付けられています。次のクエリを実行すると、 select data from test where data = 'vwx' -> returns one row 「Handler_read_rnd_next」の値を確認すると、7ずつ増加します。 以下は、上記のクエリのExplainコマンドの結果です。 explain select data from test where data = 'vwx'; id, select_type, table, type, possible_keys, key, key_len, ref, rows, Extra 1, 'SIMPLE', 'test', 'ref', 'data', 'data', '35', …

2
MyISAMからInnoDBに変換する際の問題点はありますか?
MyISAMからInnoDBに移行する準備ができていますが、探すべき項目の完全なリストがあるかどうか知りたいですか?たとえばDISABLE KEYS、のマニュアルページを除いて、InnoDBテーブルで実行すると警告がスローされることについて言及しているリストはありませんALTER TABLE。変換する前に知っておくべきことです。私は自分のクエリで大丈夫だと思いましたが、どうやらそうではありません。
11 mysql  innodb  myisam 

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