データベース管理者

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

1
大規模なMySQLデータベースをRDSに移行するにはどうすればよいですか?
私はすでにこれを少し調べました。Stack Overflowにも同様の質問があることに気づき、Amazon自身もここに助言を提供する有用なドキュメントを持っています。 http://aws.amazon.com/articles/2933 私の懸念は次のとおりです。 Amazonではmysqldump、「1 GB未満」と定義されている「少量のデータ」のみに使用することを推奨しています。移行しようとしているデータベースが20GBを超えています。 mysqldumpただし、の良い点の1つは、--single-transactionフラグがあることです。これにより、特定の時点と一貫したDB状態を確保できます。 大量のデータの場合、Amazonの推奨は、データベースをフラット(CSVなど)ファイルにエクスポートし、それを使用mysqlimportしてそれらをRDSにインポートすることです。ただし、これを行う方法を知る最良の方法は、SELECT ... INTO OUTFILE一度に1つのテーブルのみを操作するコマンドを使用することです。もちろん、これの欠点は、の一貫性が保証されないことです--single-transaction。 DB全体を一時的に停止することで一貫性を確保できると思います。でも、なるべく避けたいです。 大容量(> 20GB)データベースをフラットファイルにして使用できるようにする最良の方法は何mysqlimportですか? それが実際にSELECT ... INTO OUTFILEコマンドである場合、データベース内のすべてのテーブルをエクスポートするにはどうすればよいですか(一度に1つずつ実行する必要がないことが望ましい)。 このすべてを通して一貫性を確保するための良い方法はありますか?

3
SSMSを取得して、実行プランペインに実際のクエリコストを表示できますか?
SQL Serverのマルチステートメントストアドプロシージャのパフォーマンスの問題を修正しています。時間をかけるべき部分を知りたい。 クエリコストの読み取り方法から理解しましたが、それは常にパーセントですか?SSMSに実際の実行計画を含めるように指示された場合でも、「クエリコスト(バッチに対する)」の数値はコスト見積もりに基づいており、実際とはかけ離れている場合があります。 クエリパフォーマンスの測定:「実行プランのクエリコスト」と「実行時間」から、ストアドプロシージャの呼び出しをSET STATISTICS TIMEステートメントで囲むことができることがわかり、Messagesペインに次のようなリストが表示されます。 SQL Server parse and compile time: CPU time = 0 ms, elapsed time = 1 ms. SQL Server Execution Times: CPU time = 0 ms, elapsed time = 0 ms. [etc] SQL Server Execution Times: CPU time = 187 ms, elapsed time = 206 …

3
where句の列の順序はインデックスの順序と同じにする必要がありますか?
私はこのuse-the-index-luke.comを読んでいて、インデックスのしくみを詳しく説明しています。インデックスの順序は非常に重要であり、クエリを高速化するにはwhere句の列がインデックス内の列と同じであることを、この担当者が繰り返し述べていることの1つ。今日、私はこの理論を裏付けるだけで、SQL Server 2008にテーブル(id int、name nvarchar(100))を作成しました。そこに5000行を挿入し、インデックスを作成しました create index abc on test (name, id ) そしてクエリを発射しました select ID, name from test where ID = 10 and name = '10' 全テーブルスキャンの後にクエリプランの選択が続くことを期待していましたが、驚いたことに、プランの出力は選択に続くインデックススキャンでした。 それで、私の質問は、Where句の列の順序が重要ですか、それともSQL Serverがインデックスの定義に従って列を再配置するのですか? ありがとう!!

2
mysqlと同様のコマンドラインからSQL Serverデータベースをバックアップ/復元する方法
古いサーバーからの一部のデータベースの移行を自動化する必要があります。たとえば、C#を使用するツールのスクリプトが可能性があることは知っていますが、ジョブを実行するバッチファイルを作成するには、シンプルで高速かつ効果的なソリューションが必要です。

2
PostgreSQLでサポートされていないLC_COLLATEおよびLC_TYPEをサポートするようにWindowsを強制する方法は?
PostgreSQL 9.1.xの新規インストールがあります。残念ながら、私はOSがLC_COLLATE = 'pl_PL.utf8'およびをサポートしていないことを発見しましたLC_CTYPE = 'pl_PL.utf8'。私はPostgreSQLのドキュメントを読みました: すべてのプラットフォームで、default、C、およびPOSIXという名前の照合が使用可能です。オペレーティングシステムのサポートによっては、追加の照合が使用できる場合があります。 しかし、Windowsにそのロケールをサポートさせる方法はありますか?私はパッチ、プラグインまたは何かを意味します。

2
dm_exec_query_statsの「読み取り」と「書き込み」の単位
MSDNは、dm_exec_query_statsのさまざまな論理/物理読み取りおよび書き込み列を次のように説明しています。 プランが最後に実行されたときに実行された物理読み取りの数。 これらの列はすべて64ビット整数(bigint)であるため、数値が大きいほど読み取り/書き込みが多いことは明らかです。 しかし、この列の単位は何ですか?データベースページ?キロバイト?ちょうど任意の数ですか? 例:私のデータベースでかなり高額なクエリの場合dm_exec_query_stats.total_logical_reads = 40412。 何の40412?
8 sql-server  dmv 

5
PostgreSQLインポートCSVファイルにより構文エラーが発生する
「COPY」コマンドを使用してCSVファイルをデータベースにインポートしようとしています。ただし、スーパーユーザーになる必要があり、代わりに「\ copy」を使用する必要があるという(一般的なように見える)エラーが表示されます。ただし、\ copyを使用すると、構文エラーが発生します。 ERROR: syntax error at or near "\" LINE 1: \copy キャレットが「\」を指している。これが私のクエリです: \copy tablename(column2, column3, column4, column5) from '/home/uploads/data.csv' WITH DELIMITER ',' CSV HEADER' 「copy」と「\ copy」の両方を試しました。最初にスーパーユーザーエラーが表示され、後者に構文エラーが表示されます。それを修正する方法について何か考えはありますか?それを機能させますか? myPgAdminのsql入力フィールドを介してコマンドを実行しています。 私が持っている他の唯一の質問は、tablename(column2、column3など)を介した列のインポートに関するものです。それは正しい構文ですか?


1
MySQLの友達関係
私はMySQLで友情関係を築いています。友好関係は相互関係です。AがBの友達である場合、BはAの友達です。ユーザーの1人が友情を終了した場合、関係は低下します。どっちがいいのか知りたい。 実行中のシステムがあります。 user ----------- userid p.k name friends ------- userid friendid primary key (`userid`,`friendid`), key `friendid` (`friendid`) 1 2 2 5 1 3 To get all of my friends; SELECT u.name, f.friendid , IF(f.userid = $userid, f.friendid, f.userid) friendid FROM friends f inner join user u ON ( u.userid = …

2
SQL Server 2008:ログインは信頼されていないドメインからであり、Windows認証では使用できません
ここの質問は1と2とは異なります ネットワーク内の別のシステムにあるSQL Serverデータベースに接続しようとすると、両方がワークグループにあり、SQL Server Management StudioとWindows認証を使用してSQL Server 2008インスタンスに接続しようとすると、接続されます。 しかし、アプリケーションから接続しようとすると、次のエラーが発生します (ログインに失敗しました。ログインは信頼されていないドメインからのものであり、Windows認証では使用できません。)Native = 18452)。 SQL Server Management Studioが接続できる場合、アプリケーションを接続するには何が必要ですか?

2
インデックスを再構築する機能は何ですか?
私はITの世界で若いので、毎日学習しています。SQLデータベースを使い始めたばかりで、基本的な質問がたくさんあります。 特に、インデックスを再構築する機能とは何ですか?私はまだグーグルで良い答えを見つけていません。 どんなフィードバックでもありがたいです。

2
SQL Server:トランザクションレプリケーション計算列
私はトランザクションレプリケーションサブスクリプションのサブスクライバーです。私は出版社を管理できません。 パブリケーションデータベースのスキーマ変更に関する次の記事を読みました。 パブリケーションデータベースでスキーマを変更する ただし、サブスクリプション側のスキーマを変更しようとしています(可能な場合)。トランザクションレプリケーションが、サブスクライバーテーブルへの永続的な計算列の追加をサポートするかどうか疑問に思っています。 計算された値を必要とするすべてのテーブルに新しいビューを追加するよりも、このソリューションの方がはるかに好きです。

1
空間インデックスを複数列インデックスの一部にすることはできますか?
ここにあるこのマニュアルは非常に不明確であり、いくつかのサンプルSQLステートメントも提供していません。http: //dev.mysql.com/doc/refman/5.6/en/column-indexes.html 質問を言い換える別の方法は次のとおりです。 複数の列を持つインデックスを作成できることはわかっています。それらの列のインデックスが異なるタイプである場合はどうですか?最初の列が空間的で、もう1つが全文検索などであるとします。mysqlでそうすることはできますか?(ボーナス:あなたがたまたま知っていれば、mongodbでそれを行うことができますか?) myisamテーブルがあるとしましょう ポイントを含むLATLONG列があります 「ビジネス」の単語を含むFULLTEXT列があります 最初にLATLONGでクエリを実行し、次に一致するLATLONG内でFULLTEXT列に基づいてフィルター処理する必要があります。 複数の列のインデックスが必要になると思います。 しかし、SQLコマンドとは何でしょうか。 私たちが知っているように、mysqlは可能な場合は常に最初にフルテキスト検索インデックスを使用します。 このクエリ: SELECT BusinessID as ID , 111151.29341326*SQRT(pow(-6.186751-X(LatLong),2)+pow(106.772835-Y(LatLong),2)*0.98838574205337) AS Distance from tableauxiliary use index (LatLong_2) WHERE MBRContains( GeomFromText ( 'MULTIPOINT(-6.1934985598076 106.76604791159,-6.1800034401924 106.77962208841)' ), Latlong)=1 AND Prominent >15 AND MATCH FullTextSearch AGAINST ('sea*' IN BOOLEAN MODE) ORDER BY Distance LIMIT 0, …
8 mysql  index 

2
非クラスター化インデックス-キーと非キー
私はこれらの概念を正しく理解していることを確認したいだけなので、フィードバックがあれば大歓迎です。 これは、試行錯誤のプロセスとMSDNドキュメントを読んで、最適化したばかりのクエリからの私の理論です。 クエリ DECLARE @pic_id int SET pic_id = 1 SELECT ROW_NUMBER() OVER (ORDER BY pic_date desc) AS row_num, * FROM tbl_pics WHERE deleted = 0 AND map_id = 1 AND (hidden = 0 OR pic_id = @pic_id) インデックス CREATE NONCLUSTERED INDEX [IX_tbl_pics] ON [dbo].[tbl_pics] ( [map_id] ASC, [deleted] ASC, …


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