データベース管理者

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

4
列タイプをCHAR(36)からUUIDに変更する時間を費やすべきですか?
データベースにはすでに数百万行あります。スキーマを設計したとき、PostgreSQL UUIDデータ型について知りませんでした。 テーブルの1つには、1600万行(シャードあたり約350万から400万レコード)があり、1日あたり約50万レコードで増加します。必要に応じて、生産システムを数時間停止する余裕がまだあります。1週間か2週間でこの贅沢はありません。 私の質問は、そうする価値があるのでしょうか?JOINのパフォーマンス、ディスク領域の使用(gzipで圧縮された完全なダンプは1.25 GiB)、そのようなことについて疑問に思っています。 テーブルスキーマは次のとおりです。 # \d twitter_interactions Table "public.twitter_interactions" Column | Type | Modifiers -------------------------+-----------------------------+----------- interaction_id | character(36) | not null status_text | character varying(1024) | not null screen_name | character varying(40) | not null twitter_user_id | bigint | replying_to_screen_name | character varying(40) | source | character varying(240) …
14 postgresql 

3
「異種クエリ」とは何ですか?
プログラムで実行しているSQLクエリに関する次のエラーメッセージが表示されました。SQL Server 2005 T-SQL。 異種クエリでは、接続用にANSI_NULLSおよびANSI_WARNINGSオプションを設定する必要があります。これにより、一貫したクエリセマンティクスが保証されます。これらのオプションを有効にしてから、クエリを再発行してください。(重大度16) それを修正することは、容易なセットですANSI_NULLSとANSI_WARNINGS ON、私は知りたいと思ったものを異種クエリです。A Google検索がセットに私に言った結果の数十立ち上げるANSI_NULLSとANSI_WARNINGS、どのような用語の意味を説明する何を。クエリは次のとおりです。 UPDATE SRV.DB.DBO.TABLE SET Column= (SELECT Column FROM SRV1.DB.DBO.TABLE) これは、1つのクエリで複数のデータベースエンジンに接続しているためだと考えています。 「異種」とは、このコンテキストで2つの異なるデータベースエンジンを照会することだけを指しますか?

3
ストアドプロシージャのスケーラビリティのテスト
各ページの読み込みで特定のユーザーの新しいメッセージの数をUIに配信するために呼び出される電子メールアプリケーションがあります。DBレベルでテストしているものにはいくつかのバリエーションがありますが、すべてストアドプロシージャコールによって抽象化されています。 私は、ブレークポイント(1秒あたりのリクエスト数)がどうなるかを確認するために、DBを強打しようとしています。 一言で言えば、このuserId、newMsgCountなどのテーブルとuserIdのクラスター化インデックスがあります。SQLは、1秒あたり数百または数千のこれらの応答を処理できる必要があります。遅れは私の.NETアプリだと思います。 SQLパフォーマンスに基づいてテスト結果を達成するために、これをどのように良いテストにすることができますか? これには、ストアドプロシージャ名とパラメーターを指定してDBをパンドするツールがありますか? DBが1分を返すことができるかどうかを見たいです。1秒あたり250応答。

3
SSMSが新しい行を下ではなく表の上部に挿入するのはなぜですか?
SQL Server Management Studio 2008(データベースはSQL Server 2005)のテーブルに行を手動で挿入するたびに、新しい行はリストの一番下ではなく一番上に表示されます。ID列を使用しているため、次のような結果になります id row 42 first row 1 second row 2 third row 行がフェッチされ、明示的に順序付けされていない場合。これにより、Webアプリの行がフェッチされたときに外観が異なり、TOP 1クエリが返すものが変更されます。 私はorder by彼らができることを知っていますが、なぜこれが起こっているのですか?私のデータのほとんどはWebアプリケーションを介して挿入され、このアプリケーションからのすべての挿入は、先入れ先出しの順序になります。たとえば、最新の挿入は下にあるため、IDはすべて連続しています。サーバーまたはManagement Studioに、この不適切な順序付けを引き起こす設定がありますか?

5
MySQLサーバーは大きなダンプのインポートを妨害しなくなりました
Mac上のローカルmysqlに大きなSQLダンプ(2GB)をインポートしようとしています。過去にこれを行うことができました(私はMAMPを使用していました)が、今では行7758でERROR 2006(HY000)を受け取ります:ダンプをインポートしようとするたびにMySQLサーバーがなくなっています。データベースにはinnodbテーブルが含まれます。 my-innodb-heavy-4G.cnfファイルをmy.cnfにコピーして、これらの設定が役立つかどうかを確認しましたが、うまくいきませんでした。 何を微調整するかについてのアイデアはありますか? ここから「Mac OS X ver。10.6(x86、64ビット)、DMG Archive」を使用しています:http : //dev.mysql.com/downloads/mysql/
14 mysql  innodb  dump  mac-os-x 

3
MySQL table_cacheおよびOpened_tables
MySQLでtable_cacheが小さすぎるかどうかを評価するためにOpen_tablesとOpened_tablesの比較を使用する人々を見てきました。ただし、Opened_tablesはアップタ​​イム全体で累積されるため、これは有効な比較ではありません。唯一の注意点は、おそらくOpened_tablesが失敗した場合にのみバンプされることです。ただし、1秒あたりに開かれるテーブルがまだ小さい場合でも、徐々に大きくなることはおそらく問題ではありません。 Open_tablesとOpened_tablesを比較することが有効でない場合、これに関する測定データを取得する別の方法はありますか? これはMySQL 5.0にありますが、バージョン間の違いも歓迎します。

4
SQL Serverのテストデータを生成するためのツールは何ですか?
ロックされています。この質問とその回答はロックされています。なぜなら、質問はトピックから外れていますが、歴史的に重要だからです。現在、新しい回答やインタラクションを受け入れていません。 私の別の質問からわかるように、テストデータを生成することが今の私のテーマです。 この時点で、私はまだ手動でテストデータを生成しています。ただし、このプロセスは手動プロセスであるため、常に少量のデータ(通常5〜10行)を生成します。 このプロセスを自動化するツールはありますか?特に、1mil以上の行を生成できるようにしたいと思います。

6
SQL Serverチェックリスト
私の他の質問に続いて、アラートの観点から、毎日/毎週/毎月のベースで何を検討すべきかについて考え始めたいと思います。私は問題が起こる前に来ることを見ることができることを望んでいます(それは計画です)... これまでのところ、次のスクリプトを収集し始めました(順序なし): 毎日 システムの稼働時間を確認します(DBAとして何かを確認する必要がある場合に備えて) 最後のバックアップを確認する トランザクションログのバックアップを確認する SQLジョブのステータスを確認する 過去24時間(または1140分)の平均CPU使用率を確認します 毎週 MSDBバックアップ履歴を確認する CheckDBが最後に実行された時刻を確認する インデックスの断片化を確認する インデックスの統計を確認します(読み取りと書き込みなど) IOのボトルネックを確認する 毎月 不足しているインデックスを確認する 使用されなくなったインデックスを確認する 他の提案はありますか?(私はDBAが初めてなので、どんなヘルプ/アドバイスもいつでも歓迎します)

3
ジョブが失敗したときにSQL Serverからエラーの詳細を電子メールで受け取るにはどうすればよいですか?
SQL Serverでは、失敗したときに電子メールアラートを送信するようにジョブを構成できます。これは、ジョブを監視するためのシンプルで効果的な方法です。ただし、これらのアラートには詳細は含まれず、成功または失敗の通知のみが含まれます。 ジョブが失敗した場合、これは典型的な警告メールのようになります。 JOB RUN: 'DBA - Consistency Check Databases' was run on 8/14/2011 at 12:00:04 AM DURATION: 0 hours, 0 minutes, 0 seconds STATUS: Failed MESSAGES: The job failed. The Job was invoked by Schedule 2 (Nightly Before Backup 12AM). The last step to run was step 1 (Check …


1
大きなblobテーブルをmysqlからpostgresqlに移行する方法は?
現在、MySQLデータベースをPostgreSQLに移行しています。私が持っている1つのテーブル-実際には私のアプリで最も重要なテーブルを除いて、ほとんどすべてがうまくいきました(まあ、正しいmysqldumpパラメータなどのためにたくさんのグーグルをした後)。 テーブル構造は非常に単純です。 mysql> show create table samples; .. skipped ... CREATE TABLE `samples` ( `File_ID` int(11) NOT NULL, `File` longblob, PRIMARY KEY (`File_ID`) ) ENGINE=InnoDB DEFAULT CHARSET=binary ただし、非常に大きい(> 20 Gb)。 mysqldumpの--hex-blobパラメーターを使用しようとしましたが、結果のダンプファイルをコマンドファイルとして使用しようとすると、この形式のデータはPostgreSQLで受け入れられません。私が試した別のオプションは、-tabオプションを使用してダンプを取得し、COPYコマンドでPostgreSQLに挿入することです-しかし、-hex-blobは--tabで動作せず、PostgreSQLはまだダンプファイルを受け入れません無効な文字です。 この問題に関してアドバイスをいただければうれしいです-カスタム移行ツールを書くことは結局悪い考えではないと思い始めていますが...

3
インデックス付き列を持つ大きなテーブルのALTER TABLE
VARCHAR(20)列を持つ大きなテーブルがあり、それをVARCHAR(50)列になるように変更する必要があります。通常、この特定のテーブルでALTER TABLEを実行(TINYINTを追加)するのに約90〜120分かかります。そのため、データベースのユーザーに影響を与えないために、土曜日または日曜日の夜にしかできません。可能であれば、その前にこの変更を行いたいと思います。 列にもインデックスが付けられますが、列の長さを変更した後にインデックスを再構築する必要があるため、ALTER TABLEが遅くなると思われます。 Webアプリは、MySQLレプリケーション環境(26個のスレーブと1個のマスター)でセットアップされます。一度どこかで、1つの方法は最初に各スレーブでALTER TABLEを実行し(ユーザーへの影響を最小限に抑える)、次にマスターでこれを行うことを思い出しますが、それからALTER TABLEコマンドをスレーブに複製しようとしませんか? 私の質問は次のとおりです。ユーザーの混乱を最小限に抑えてこのテーブルを変更する最良の方法は何ですか? 編集:テーブルはInnoDBです。


1
大規模なデータセットを処理するために、SQL Server 2008 R2のシャーディングを設定するためのパターン?
SQL Server 2008 R2で大きなデータセット(> 10億行)を処理したい。「シャーディング」または「水平パーティショニング」を設定すると、テーブルが複数のファイルに分割されるため、大規模なデータセットをすばやく処理できると聞きました。 以前にシャーディングまたは水平分割を使用したことがありますか?もしそうなら、あなたの経験では、単一の巨大なテーブルと比較してより良い結果を達成するパターンを提案できますか?

1
INFORMATION_SCHEMAはMySQLでどのように実装されていますか?
INFORMATION_SCHEMAは、理論的には、ユーザーがシステムのメタデータを検査できるようにするSQL標準で指定された一連のビューです。これはMySQLでどのように実装されていますか? 新規インストールに接続すると、2つのデータベースが表示されます:mysqlとinformation_schema。データベースでSHOW CREATE TABLEステートメントを使用した後information_schema、ビューのセットとしてではなく、ベーステーブルを使用して実装されているようです。この仮定は正しいですか?または、ユーザーから隠されている他のシステムテーブルがありますか?

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