データベース管理者

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

2
SQL Serverトランザクションタイムアウト
SQL Server 2008 R2には、トランザクションを含むデータベース変更のタイムアウトを引き起こす方法はありますか?アプリケーションコードがハングまたは例外をスローし、ロールバックまたはコミットの実行に失敗するシナリオがあります。これにより、トランザクションが完了するまで他のセッションがハングします。

3
外部キー制約データを取得する方法
スキーマ全体の外部キー情報(各行:参照テーブルとフィールド、参照テーブルとフィールド)を取得できるクエリを探しています。 私はこれを見つけましたが、必要なすべての情報を提供していません:https : //stackoverflow.com/questions/4389228/sql-for-oracle-to-check-if-a-constraint-exists 私は現在それに取り組んでおり、次の数分/時間で解決策になるかもしれません。しかし、誰かがすでに完全に機能する解決策を持っている場合は、それを知って喜んでいます:)

1
トランザクションログとバイナリログの違いは何ですか?
SQL Serverショップから来て、今はMySQLを使用しています。 MySQLのバイナリログとMSSQLのトランザクションログの違いは何ですか? これまでの見通しでは、MSSQLのようにデータベースごとのトランザクションログとは対照的に、MySQLインスタンスごとに1つのバイナリログしかないようです。

6
移行のためのデータベースマッピングを文書化する最良の方法[終了]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? 質問を更新して、データベース管理者のスタック交換のトピックになるようにします。 5年前休業。 移行のためのデータベース要素のマッピングを含むプロジェクトに取り組んでいますが、これを行うために他の人が使用しているツールを知りたいですか? Excelは単純なマッピングを文書化する非常に柔軟な方法ですが、誰かが特定の方法論や推奨する他のツールを使用している人がいるかどうか疑問に思っていましたか?

1
MySQLクエリの実行中にクライアントがタイムアウトしますか?
MySQLワークベンチを介して実行された読み取り専用クエリがユーザーのUIの観点からタイムアウトになり、停止が発生するまでサーバー上で実行され続けた(そしてますます多くのリソースを消費している)という問題が発生しました。 ご質問 MySQLでこの種の問題に対処する標準的な方法はありますか? 私たちが避けなければならない根本的な原因はありますか?

5
スキーマの過剰使用/正しい使用?
尋ねたこれで質問をStackOverflowの、私は私が行っていることは正しいです/ベストプラクティスを疑問に思いました。 基本的に、私が作成するすべてのオブジェクトは、使用法を反映するスキーマ名を持つスキーマに入ります。たとえば、私にはスキーマAuditとAdmin(特に)があります。 これにより、にオブジェクトが残りませんdbo。これでいい?他に必要なことはありますか?

1
ルールが適用された後にクエリを表示するにはどうすればよいですか?
ドキュメントから-37.3.1.1。「ステップバイステップの最初のルール」 CREATE TABLE shoelace_log ( sl_name text, -- shoelace changed sl_avail integer, -- new available value log_who text, -- who did it log_when timestamp -- when ); CREATE RULE log_shoelace AS ON UPDATE TO shoelace_data WHERE NEW.sl_avail <> OLD.sl_avail DO INSERT INTO shoelace_log VALUES ( NEW.sl_name, NEW.sl_avail, current_user, current_timestamp ); …

3
EXPLAIN出力は、私のインデックスが使用されていないことを示唆しています
私はテーブルにdone_status(done_status = INT)のみのインデックスを設定しました: 私が使うとき: EXPLAIN SELECT * FROM reminder WHERE done_status=2 私はこれを取り戻します: id select_typeテーブルタイプの可能性ありのキーキーのkey_len ref rows Extra 1簡単なリマインダーALL done_status NULL NULL NULL 5 whereの使用 しかし、このコマンドを発行すると: EXPLAIN SELECT * FROM reminder WHERE done_status=1 以下が返されます: id select_typeテーブルタイプの可能性ありのキーキーのkey_len ref rows Extra 1 SIMPLE reminder ref done_status done_status 4 const 2 EXPLAINそれは5行、二回目2行を使用していることを示してくれ。 インデックスが使用されているとは思いません。最初に正しく理解した場合は、3行になるはずです。何が悪いのでしょうか? SHOW …
9 mysql 

2
データベースごとのMySQLアクティビティを監視しますか?
サーバーの各データベースのアクティビティを監視する最良の方法は何ですか? アクティビティをリアルタイムで表示するmtop / mytopを試してみましたが、実行されたすべてのクエリを表示するのはあまり実用的ではありません。 MySQLログをアクティブ化しましたが、データベースごとに分割するオプションがありません。 MySQLサーバーを監視するためにどのツールを使用していますか?

4
SQL 2008 R2は、Windowsユーザーがテーブルを作成するときにユーザー/スキーマを作成します
次のスクリプトを使用して、WindowsグループをSQL 2008 R2インスタンスにマップするサーバーログインとデータベースユーザーを追加しました。匿名のために名前を変更しました。 USE master go CREATE LOGIN [DOMAIN\AppUsers] FROM WINDOWS WITH DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[us_english] go USE AppDb go CREATE USER [DOMAIN\AppUsers] FOR LOGIN [DOMAIN\AppUsers] go EXEC sp_addrolemember N'db_owner', N'DOMAIN\AppUsers' go DOMAIN \ User1アカウントがアプリにログオンすると、User1はDOMAIN \ AppUsersのメンバーであるため、User1はdboスキーマのテーブルに問題なくクエリを実行しますが、このアプリではユーザーがテーブルを作成することもできます。スキーマを指定せずにこれらのテーブルを作成すると、SQL Serverは次のことを行います。 インスタンスのSSMS \ Security \ Loginsにリストされていない 'DOMAIN \ User1'ログインを使用するAppDbに 'DOMAIN \ User1'ユーザーを作成します。 AppDbに「DOMAIN \ User1」スキーマを作成します。 …

4
SQL Server 2008 R2でテーブルを使用しているストアドプロシージャまたはトリガーを知るにはどうすればよいですか?
これは、私がチェックしているDBに、ユーザー履歴を保持するアーカイブテーブルがあり、しばらくするとこのテーブルから行を削除するトリガーまたはストアプロシージャがあり、同じように、私はDBを設計しませんでした。このDBを使用するアプリケーションのメンテナンスを行っているだけなので、これらのストアドプロシージャまたはトリガーの名前がわかりません。このストアドプロシージャを探します。またはトリガーして、コードを確認し、この「ユーザー履歴」をテーブルに長く残すようにコードを変更します。 誰かが「sysobjects」テーブルをチェックするように言われました。そこでは、テーブルの同じ名前の何かが実際に表示されますが、これは私が取得できた唯一の情報です。アドバイスはありますか? ありがとうございました。

3
SQL Server 2005デッドロックシナリオのトラブルシューティング
デッドロックのシナリオに遭遇しています。デッドロックの唯一の関係者は、単一のテーブルと、そのテーブルから削除する単一のストアドプロシージャであるように見えます。エラーログのトレースを解読するガイドラインとして以下のMSDNの記事を使用して、これらのデッドロックのいくつかの時点でのSQLエラーログの私の分析に基づいて、その結論を導き出しました。 テーブルDEXTableとストアドプロシージャClearDEXTableRowsを以下に定義します。DEXTableに行を挿入する別のストアドプロシージャInsertDEXTableRowがありますが、そのプロシージャはSQLエラーログのエントリに基づくデッドロックに関与していないようです。 DEXTableには約830万行があり、着実に成長する傾向があります。回答者のテーブルも大きく、着実に成長する傾向があります。 ClearDEXTableRowsとInsertDEXTableRowをすばやく連続して頻繁に呼び出すページがある、トラフィック量の多いWebサイトからアクセスされます。 デッドロックは、過去10日間、1日あたり0〜9回発生しました。 1222のSQLトレースを有効にし(DBCC TRACEON 1222を使用)、最近フラグ1204を有効にしました。デッドロックの検出と終了に関するこれらのフラグの出力については、適切な説明があります 私の質問は: この1つのストアドプロシージャClearDEXTableRowsだけがデッドロックの原因であることは理にかなっていますか? もしそうなら、誰もがこれがどのように起こり得るかの良い説明を提供し、それを修正する方法を勧めることができますか? 私の疑いは、DELETEステートメントが頻繁に再構築する必要があるDEXTableのPKで競合を引き起こしていることです。 そうでない場合、デッドロックの原因をさらに掘り下げるには、どのような追加のトレースを有効にする必要がありますか?(私はここで学びたいです) -- Table definition CREATE TABLE [dbo].[DEXTable]( [ExportID] [int] NOT NULL, [RespondentID] [int] NOT NULL, [Exported] [datetime] NOT NULL, CONSTRAINT [PK_DEXTable] PRIMARY KEY CLUSTERED ( [ExportID] ASC, [RespondentID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = …


2
UUIDのデフォルト値で一意の列を作成する方法
内部で使用するためのキー列がありますが、これは増加する整数ですが、UUIDである2番目の一意の列が欲しいのですが、デフォルト値を呼び出す関数を持つ方法がわかりません(SQLサーバーはJavaではなくUUIDを作成しています)、これについて私に提案できるドキュメントはありますか?

3
SQL Server 2008データベースのトランザクションログを切り捨てる方法を教えてください。
SQL Server 2008データベースのトランザクションログを切り捨てる方法を教えてください。 可能な最善の方法は何ですか? 私は次のようにブログからこれを試しました: 1)データベースの設定から単純な回復、ファイルの圧縮、そして完全な回復の設定に至るまで、実際には貴重なログデータが失われており、特定の時点に復元することはできません。それだけでなく、後続のログファイルを使用することもできなくなります。 2)データベースファイルまたはデータベースを縮小すると、断片化が追加されます。 できることはたくさんあります。最初に、ログを切り捨てて頻繁に失うのではなく、次のコマンドを使用して適切なログバックアップを開始します。 BACKUP LOG [TestDb] TO DISK = N'C:\Backup\TestDb.bak' GO ファイルを縮小するコードを削除します。適切なログバックアップを行っている場合、ログファイルは通常(通常、特殊なケースは除外されます)大きくなりません。

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