データベース管理者

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

3
ENUM型と整数型を使用する利点と欠点は?
ランダムなテーブルにstatusという名前の列があるとします。実際の値は、有効または無効になります。 この列のデータ型がint / bool(1または0)であるか、またはand ENUMの値で使用する方が良いでしょうか?長所と短所は何ですか?enableddisabled 有効なステータスが2つだけではなく、4または10以上あるとしますか?必要な値の数が増えると、長所と短所はどちらか一方に左右されますか?

6
インデックスが必要か必要かを判断する方法
MS SQLデータベースで自動インデックスツールを実行しました(インデックス統計テーブルを参照するMicrosoftのスクリプトを変更しました- 自動自動インデックス作成)。統計から、作成する必要のあるインデックスの推奨事項のリストができました。 編集: 上記のインデックスは、データベースエンジンがインデックスに使用できるものを示すDMVから情報を取得し、スクリプトはTop xの推奨事項(シーク、ユーザーへの影響など)を取得し、テーブルに入れます。 (スクリプトが何をしているのかを明確にするために、下のラリー・コールマンの回答から部分的に取った上記の編集) 私はデータベース管理者が初めてであり、ネット上で簡単に検索したので、思い切って推奨インデックスを盲目的に追加することに消極的です。ただし、この分野での経験がないため、推奨事項が必要かどうかを判断する方法についてのアドバイスを探しています。 SQLプロファイラを実行する必要がありますか、それともテーブルをクエリするコードを調べる方が良いですか?他にアドバイスはありますか?

11
SQL:SELECT一部を除くすべての列
SELECT特定の列を除く、テーブル内のすべての列への方法はありますか?ITは、テーブルからすべての非ブロブ列または非幾何列を選択するのに非常に便利です。 何かのようなもの: SELECT * -the_geom FROM segments; テーブルへの列の追加を変更するとクエリ結果が変更されるため、この機能が意図的にSQL標準から除外されたと聞いたことがあります。これは本当ですか?引数は有効ですか? 特にPostgreSQLで回避策はありますか?

6
SQL Server Management Studio 18が開かない(スプラッシュ画面のみがポップアップする)
VS2019のみがインストールされたコンピューターにSSMS 18 GAをインストールしました。SSMSを開こうとすると、スプラッシュスクリーンが表示されますが、プロセスは終了します。 -logパラメーターを指定してssmsを実行すると、エラーメッセージが表示されます。 パッケージのCreateInstanceが失敗しました[タスクスケジューラパッケージ]ソース: 'mscorlib'説明:ファイルまたはアセンブリ 'Microsoft.VisualStudio.Shell.Interop.8.0、Version = 15.0.0.0、Culture = neutral、PublicKeyToken = b03f5f7f11d50a3a'またはいずれかをロードできませんでしたその依存関係。見つかったアセンブリのマニフェスト定義は、アセンブリ参照と一致しません。(HRESULTからの例外:0x80131040)System.IO.FileLoadException:ファイルまたはアセンブリ 'Microsoft.VisualStudio.Shell.Interop.8.0、Version = 15.0.0.0、Culture = neutral、PublicKeyToken = b03f5f7f11d50a3a'またはその依存関係の1つをロードできませんでした。見つかったアセンブリのマニフェスト定義は、アセンブリ参照と一致しません。(HRESULTからの例外:0x80131040)ファイル名: 'Microsoft.VisualStudio.Shell.Interop.8.0、Version = 15.0.0.0、Culture = neutral、PublicKeyToken = b03f5f7f11d50a3a '---> System.IO.FileLoadException:ファイルまたはアセンブリ' Microsoft.VisualStudio.Shell.Interop.8.0、Version = 8.0.0.0、Culture = neutral、PublicKeyToken = b03f5f7f11d50a3a 'またはその依存関係の1つをロードできませんでした。見つかったアセンブリのマニフェスト定義は、アセンブリ参照と一致しません。(HRESULTからの例外:0x80131040)ファイル名: 'Microsoft.VisualStudio.Shell.Interop.8.0、Version = 8.0.0.0、Culture = neutral、PublicKeyToken = b03f5f7f11d50a3a' WRN:アセンブリバインディングログはオフになっています。アセンブリバインドエラーログを有効にするには、レジストリ値[HKLM \ Software \ Microsoft \ …
105 sql-server  ssms  ssms-18 

5
MySQL innodb変数「innodb_log_file_size」を安全に変更する方法は?
だから、私はInnoDBをチューニングするのはかなり新しいです。MyIsamからInnoDBに(必要に応じて)テーブルをゆっくりと変更しています。innodbに約100MBあるので、innodb_buffer_pool_size変数を128MB に増やしました。 mysql> show variables like 'innodb_buffer%'; +-------------------------+-----------+ | Variable_name | Value | +-------------------------+-----------+ | innodb_buffer_pool_size | 134217728 | +-------------------------+-----------+ 1 row in set (0.00 sec) innodb_log_file_size値を変更しようとしたとき(mysqlのinnodb構成ページのコメントの my.cnfの例では、ログファイルのサイズをバッファーサイズの25%に変更します。したがって、my.cnfは次のようになります。 # innodb innodb_buffer_pool_size = 128M innodb_log_file_size = 32M サーバーを再起動すると、次のエラーが表示されます。 110216 9:48:41 InnoDB:バッファープールの初期化、サイズ= 128.0M 110216 9:48:41 InnoDB:バッファープールの初期化の完了 InnoDB:エラー:ログファイル./ib_logfile0は異なるサイズ0 5242880バイト InnoDB:で指定されたものより.cnfファイル0 33554432バイト! 110216 9:48:41 …
105 mysql  innodb  myisam  logs 


4
他の人が接続されている間、強制的にデータベースを削除
PostgreSQL DBクラスターからデータベースを削除する必要があります。アクティブな接続がある場合でもどうすればよいですか?-forceフラグのようなものが必要です。これはすべての接続をドロップし、次にDBをドロップします。 どうすれば実装できますか? dropdb現在使用していますが、他のツールも使用できます。

3
ALTER TABLE-列の名前を変更する
これは私に夢中です! ブログテーブルの列の名前をread-moreからread_moreに変更したい 私はこれをすべて試しました: ALTER TABLE blog RENAME COLUMN read-more to read_more; ALTER TABLE blog CHANGE COLUMN 'read-more' 'read_more' VARCHAR(255) NOT NULL; そして、私はいつもこれを手に入れます! ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near …
102 mysql  mysql-5.5  mysql-5 


6
TRUNCATEとDROPの両方を使用する理由
私が取り組んでいるシステムには、一時テーブルを利用する多くのストアドプロシージャとSQLスクリプトがあります。これらのテーブルを使用した後、削除することをお勧めします。 私の同僚の多く(ほとんど全員が私よりもはるかに経験豊富です)が通常これを行います: TRUNCATE TABLE #mytemp DROP TABLE #mytemp 私は通常DROP TABLE、スクリプトでシングルを使用します。 TRUNCATE直前に行う理由はありますDROPか?

5
カスケード(ON DELETE / UPDATE)動作の適切な説明
私は毎日スキーマを設計していませんが、そうするとき、私は管理を容易にするためにカスケード更新/削除を正しくセットアップしようとします。カスケードがどのように機能するかは理解していますが、どのテーブルがどのテーブルであるかを思い出すことはできません。 例えば、場合、私は2つのテーブルを持っている- ParentとChildの外部キーと- Childその参照Parentして持っているON DELETE CASCADEカスケードの引き金と記録しているが、カスケードによって削除されます記録し、?私の最初の推測はChild、ParentレコードはChildレコードに依存しているため、レコードが削除されるとレコードが削除されることですParentが、これON DELETEはあいまいです。それは、削除を意味することができParentたときに、レコードをChildレコードが削除されたか、削除意味するかもしれないChild時にレコードをParent削除されます。それでどちらですか? 構文がON PARENT DELETE, CASCADEであったON FOREIGN DELETE, CASCADEか、またはあいまいさを排除するために似たものがあればいいのにと思います。これを覚えているニーモニックはありますか?

8
最初の引数がNULLでなくても、SQL ServerはCOALESCE関数をすべて読み取りますか?
T-SQL COALESCE関数を使用していますが、最初の引数は実行された時間の約95%でnullになりません。最初の引数がのNULL場合、2番目の引数は非常に長いプロセスです。 SELECT COALESCE(c.FirstName ,(SELECT TOP 1 b.FirstName FROM TableA a JOIN TableB b ON .....) ) たとえば、c.FirstName = 'John'SQL Serverは引き続きサブクエリを実行しますか? VB.NET IIF()関数では、2番目の引数がTrueの場合、コードは3番目の引数を読み取ります(使用されなくても)。

7
GUID対INT-主キーとしてどちらが良いですか?
私は使用する理由としない理由について読んGuidでいintます。 int小さく、速く、覚えやすく、時系列を保持します。そして、Guid私が見つけた唯一の利点は、それがユニークであることです。どちらの場合、a Guidはa よりも優れており、intその理由は? 私が見たものからint、多くの場合、無関係である数の制限を除いて、欠陥はありません。 なぜ正確にGuid作成されたのですか?実際には、単純なテーブルの主キーとして機能する以外の目的があると思います。(Guid何かに使用する実際のアプリケーションの例は?) (Guid = UniqueIdentifier)SQL Serverのタイプ

4
さまざまなタイムスタンプ(2列)でのクエリの最適化
Ubuntu 12.04でPostgreSQL 9.1を使用しています。 時間範囲内のレコードを選択する必要があります。テーブルにtime_limitsは2つのtimestampフィールドと1つのintegerプロパティがあります。実際のテーブルには、このクエリに関係しない追加の列があります。 create table ( start_date_time timestamp, end_date_time timestamp, id_phi integer, primary key(start_date_time, end_date_time,id_phi); このテーブルには、およそ2Mのレコードが含まれています。 次のようなクエリには膨大な時間がかかりました。 select * from time_limits as t where t.id_phi=0 and t.start_date_time <= timestamp'2010-08-08 00:00:00' and t.end_date_time >= timestamp'2010-08-08 00:05:00'; そこで、別のインデックスを追加してみました-PKの逆です: create index idx_inversed on time_limits(id_phi, start_date_time, end_date_time); パフォーマンスが向上したという印象を受けました。テーブルの中央にあるレコードにアクセスする時間は、より合理的であるようです。40〜90秒の間です。 ただし、時間範囲の中央の値の場合はまだ数十秒です。そして、テーブルの終わりをターゲットにすると(時系列的に)、さらに2倍になります。 私explain analyzeは初めてこのクエリプランを取得しようとしました。 Bitmap Heap …

5
集計値の保存と計算
集計値を保存するタイミングと、その場でそれらを計算するタイミングを決定するためのガイドラインまたは経験則はありますか? たとえば、ユーザーが評価できるウィジェットがあるとします(下のスキーマを参照)。ウィジェットを表示するたびに、Ratingsテーブルから平均ユーザー評価を計算できました。または、Widgetテーブルに平均評価を保存できます。これにより、ウィジェットを表示するたびに評価を計算する必要がなくなりますが、ユーザーがウィジェットを評価するたびに平均評価を再計算する必要があります。 Ratings Widgets --------- ------- widget_id widget_id user_id name rating avg_rating <--- The column in question

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