データベース管理者

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


1
SQL Server 2008でデータベースを強制的に削除する方法
データベースを強制的に削除しようとしていますが、データベースを削除した後、データベースを再作成しようとするとエラーが発生します ファイルC:\ Program Files ..... [databasename] .mdfは既に存在するため作成できません データベースを強制的に削除するためのクエリを次に示します Use master; ALTER database [databasename] set offline with ROLLBACK IMMEDIATE; DROP database [databasename]; 上記のクエリはデータベースを削除し.ldfてい.mdfますが、and ファイルを削除するわけではないことを理解しました。データベースを徹底的に削除する方法は? 通常のクエリ Drop database [databasename] ; //deletes the database completely, including the ldf and mdf's. データベースを強制的に削除する方法は、データベース.mdfと.ldfファイルも削除しますか?

4
LEFT JOINまたはNOT EXISTSの使用のベストプラクティス
LEFT JOINまたはNOT EXISTS形式を使用する間にベストプラクティスはありますか? 一方を他方より使用する利点は何ですか? 存在しない場合、どちらを優先すべきですか? SELECT * FROM tableA A LEFT JOIN tableB B ON A.idx = B.idx WHERE B.idx IS NULL SELECT * FROM tableA A WHERE NOT EXISTS (SELECT idx FROM tableB B WHERE B.idx = A.idx) SQL Serverデータベースに対してAccess内でクエリを使用しています。


8
SQL ServerのMAXDOP設定アルゴリズム
新しいSQL Serverをセットアップするとき、次のコードを使用して、MAXDOP設定の適切な開始点を決定します。 /* This will recommend a MAXDOP setting appropriate for your machine's NUMA memory configuration. You will need to evaluate this setting in a non-production environment before moving it to production. MAXDOP can be configured using: EXEC sp_configure 'max degree of parallelism',X; RECONFIGURE If this instance is hosting a …

4
MySQLは巨大な(32 GB)SQLダンプをより速くインポートする方法ですか?
この巨大な32 GBのSQLダンプがあり、MySQLにインポートする必要があります。そのような巨大なSQLダンプをインポートする必要はありませんでした。私はいつもやった: mysql -uroot dbname < dbname.sql 時間がかかりすぎています。約3億行のテーブルがあり、約3時間で150万行になります。そのため、全体が600時間(24日間)かかり、実用的ではないようです。だから私の質問は、これを行うより速い方法はありますか? 詳細情報/調査結果 テーブルはすべてInnoDBであり、外部キーは定義されていません。ただし、多くのインデックスがあります。 元のサーバーとDBにアクセスできないため、新しいバックアップを作成したり、「ホット」コピーなどを実行したりできません。 ここでinnodb_flush_log_at_trx_commit = 2提案されている設定では、(明らかに見える/指数関数的に)改善されないようです。 (MySQLのワークベンチからの)輸入時のサーバの統計情報:https://imgflip.com/gif/ed0c8。 MySQLバージョンは5.6.20コミュニティです。 innodb_buffer_pool_size = 16Mおよびinnodb_log_buffer_size = 8M。これらを増やす必要がありますか?



4
インデックスシークとインデックススキャン
実行速度の遅いクエリの実行プランを見ると、ノードの一部がインデックスシークであり、一部がインデックススキャンであることがわかりました。 インデックスシークとインデックススキャンの違いは何ですか? どちらがパフォーマンスが良いですか? SQLはどのように一方を選択しますか? これは3つの質問ですが、最初の質問に答えると他の質問も説明できると思います。

7
MySQLレプリケーションを完全に無効にする方法
デュアルマスターMySQLレプリケーションを実行していますが、レプリケーションなしで単一のデータベースに移行したいと考えています。両方のデータベースでレプリケーションを完全に無効にするにはどうすればよいですか?

9
PostgreSQLでcurrval()を使用して最後に挿入されたIDを取得するにはどうすればよいですか?
私はテーブルを持っています: CREATE TABLE names (id serial, name varchar(20)) 挿入時に使用せずに、そのテーブルから「最後に挿入されたID」が必要RETURNING idです。関数があるようですが、CURRVAL()使用方法がわかりません。 私は試しました: SELECT CURRVAL() AS id FROM names_id_seq SELECT CURRVAL('names_id_seq') SELECT CURRVAL('names_id_seq'::regclass) しかし、どれも機能しません。currval()最後に挿入されたIDを取得するにはどうすればよいですか?

1
mysqlでibdataのサイズを縮小する最良の方法は何ですか?
私は、ibdataファイルのサイズが日々増加する運用サーバーをいくつか持っています。 すでに290GBのスペースを消費しています。 サーバー内のテーブルの大部分はInnoDBであり、高い読み取りおよび書き込み要求があります。 ログファイルのサイズも増加します。テーブルには大量のデータがあります。 両方のサイズの増加をどのように制御できますか? 私は使用していませんinnodb_file_per_table。
63 mysql  innodb 

4
MySQL:存在しない場合はインデックスを作成
MySQLにインデックスが存在しない場合に作成する方法はありますか? MySQLは明白な形式をサポートしていません。 CREATE INDEX IF NOT EXISTS index_name ON table(column) ERROR 1064 (42000): You have an error in your SQL syntax;... MySQLバージョン(mysql -V)は5.1.48ですが、MySQLにはCREATE INDEX IF NOT EXISTすべてのバージョンの機能が欠けていると思います。 MySQLにインデックスがまだ存在しない場合にのみインデックスを作成する正しい方法は何ですか?

4
mongorestoreコマンドを使用してバックアップから特定のデータベースを復元する方法
mongodumpコマンドを使用して、すべてのデータベースのバックアップを作成しました。次に、mongorestoreコマンドを使用して特定のデータベースを復元します。 これはどのように可能ですか、私はこのコマンドを使用します:--dbオプション、mongodbは特定のデータベースを復元しません。
62 mongodb 

3
3つの列のうち1つだけがNULLでないチェック制約
FLOAT、NVARCHAR(30)、またはDATETIME(3つの独立した列)の3種類の結果を含む(SQL Server)テーブルがあります。特定の行について、1つの列のみが結果を持ち、他の列がNULLであることを確認したい。これを達成するための最も単純なチェック制約は何ですか? このコンテキストは、非数値の結果を既存のシステムに取り込む機能を改良しようとしています。行ごとに複数の結果を防ぐために2つの新しい列を制約付きでテーブルに追加することが最も経済的なアプローチであり、必ずしも正しいものではありません。 更新:申し訳ありませんが、データ型はsnafuです。悲しいことに、示された結果の型をSQL Serverのデータ型として解釈するつもりはなく、単に一般的な用語が修正されました。

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