データベース管理者

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

4
SQL Server-インスタンス名とインスタンスIDの違い
SQL Serverのインスタンスとは少し混乱しています。インスタンス名とインスタンスIDは異なるプロパティですが、インスタンスIDはデフォルトでインスタンス名の大文字バージョンになっている傾向があります。インストールでは、IDに名前とは異なる値を設定できますが、通常は同じです。 明らかに、IDは内部参照を指し、名前はユーザーフレンドリーな参照を指します。しかし、2つの間の基本的な違いは何ですか?どちらを使用するのか。 カスタムインストールプロセスからクライアントのサーバーマシンにSQL Server 2008 R2 Expressを展開/インストールするときに、これを理解する必要があります。
13 sql-server 

2
一般的なユーザーに付与する適切な権限は何ですか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 6年前に閉鎖されました。 MySQLによって提供される特権のリストは少し圧倒的だと思います。誰がどのような特権を持つべきかわかりません。私の考えでは、私の状況には3つの一般的なユーザーがいます。 root developer application root自明です。以下の場合developer、このユーザー私はこの権限セットにこのユーザを設定してい手始めになど、それまでのメイクの調整簡単に任意のデータベースにアクセスできるようにする必要があります。 SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, EVENT, TRIGGER ON applicationさらに限定されたセットがあります。特定のデータベースの操作に限定する必要があります。 付与するのに適切な特権のセットが何であるかわかりません。開発者とアプリケーションに付与するための合理的な特権セットとは何ですか。なぜですか。

2
PostgreSQL:特定のテーブルにアクセスするすべてのストアド関数を一覧表示する方法
前書き: 廃止された、使用されていないなど、数百のストアド関数を含むPostgreSQLデータベース 問題 テーブル構造を変更したいので、テーブルXと関係のあるすべてのストアド関数を見つける必要があります。一部は使用されていない可能性があるため、コードを確認するだけではそれを行うことはできません。 ATMを使用するソリューションは、psql \df+とgreppingの出力を実行していますが、情報スキーマを使用するなど、よりデータベースに似たソリューションを使用したいと思います。これは間違いなく繰り返しの多い作業になるので、きれいにしてください。 助言がありますか?

3
MySQL:通信パケットの読み取りエラー
私はmysqlでこの警告を受けます、 [Warning] Aborted connection 21 to db: 'MyDB' user: 'MyUser' host: 'localhost' (Got an error reading communication packets) 私はグーグルでいくつかのトピックを経験しました、そしていくつかの提案によると私max_allowed_packetは128 to 512 to 1024まだ同じ行動からそれを増やしました。 私は、Drupalの7を使用していますし、そうBLOBデータの種類がたくさんありますが、1024 Mbのmax_allowed_packet私の意見では十分なはずです。 この警告を克服する他の回避策はありますか? 編集: @Rolandoの提案/回答としていくつかの設定を追加しましたが、同じ警告が表示されます。 私のmysql構成は次のようになります。 [client] port = 3306 socket = /tmp/mysql.sock default-character-set = utf8 [mysqld] port = 3306 socket = /tmp/mysql.sock skip-external-locking key_buffer_size = 16K …
13 mysql  innodb 

3
CASEを使用してUPDATEクエリの列を選択しますか?
次のようCASEに、SELECTクエリに表示する列を選択するために使用できます(Postgres)。 SELECT CASE WHEN val = 0 THEN column_x WHEN val = 1 THEN column_y ELSE 0 END AS update, ... UPDATEPostgresでクエリを実行するときに、同様のことは可能ですか(更新する列を選択してください)。私はこれについて何も見つけることができなかったのではないと思いますが、誰かが賢い代替手段を持っていると思います(手順を使用するか、CASEを使用して各列を更新して、列の値に新しい値を割り当てるか、単に既存の列を再割り当てするかを決定する以外に値)。簡単な選択肢がない場合は、もちろんそれも答えとして受け入れます。 追加情報:私の場合、更新される可能性のある14の潜在的な列があり、一致する行ごとに1つだけが更新されます(更新されるテーブルはクエリで別のテーブルと結合されます)。更新する行の量はおそらく異なり、数十または数百になる可能性があります。結合条件の指標は整っていると思います。

3
SQL ServerのERROR_STATE()とは何ですか?
私は読み取りERROR_STATE()エラーの同じタイプが発生する可能性がソースコードにおける異なる状態/位置を区別するために缶の助けを。しかし、それがどのように役立つかは、私にははっきりしていません。 MSDNの状態: ERROR_STATE() TRY…CATCHコンストラクトのCATCHブロックが実行される原因となったエラーの状態番号を返します。 実際にどのように使用できますか?誰かが私に例を示すことができますか?このリファレンス記事で提供されているものは本当に私に物事をうまく説明するのに役立ちませんか?

4
「View Server State」のセキュリティとパフォーマンスへの影響
この質問は、さまざまなDMV(動的管理ビュー)には「サーバー状態の表示」権限が必要であることを指摘していますが、あなたが誰をしていて、その権限を付与したくないかについては何もわかりません。 もちろん、私は「最低限のアクセス許可」と、それを誰にも付与したくない理由を理解していますが、付与する必要があるかどうかを評価する方法についてのガイドはありません。 だから、私の質問:ユーザーに「サーバー状態の表示」権限を付与することのセキュリティとパフォーマンスへの影響は何ですか?許可されるべきではないことを彼らが何ができるか... 更新:1つの影響は、ユーザーがDMVを使用してクエリを確認できることです。クエリまたはクエリパラメータに、ユーザーが見ることができない機密情報を含めることができる場合、VIEW SERVER STATEを許可すると、そうすることができます(つまり、dob =またはssn =)。
13 sql-server 

4
「TASK MANAGER」プロセスは、シングルユーザーモードのデータベースを引き継ぎます。それは何ですか?
これは私がstackoverflowで尋ねた質問の複製ですが、私はここにいる誰かが何が起こっているのかより良い考えを持つことができるとアドバイスされました。 .NET SqlConnectionを使用してシングルユーザーモードでSQL Serverをアップグレードするとき、SQLコードが実行されている間に他のアプリケーションがデータベースにログインして散発的に問題が発生し、プロセスが開始されます。SqlConnectionが閉じられたり、破棄されたりすることはありません。しかし、他のいくつかのアプリケーションはどういうわけかデータベースに接続してしまい、それが私の接続を開始します。 sp_whoを実行すると、データベースを制御するプロセスがCommand = "TASK MANAGER"であることがわかりました。 誰もがこのプロセスとは何か、その目的は何か、そして世界中でどのようにしてシングルユーザーモードのデータベースにアクセスでき、アクティブな接続があるかを教えてもらえますか?

1
Mergeステートメントのロックオプションは何ですか?
MERGEステートメントを実行するストアドプロシージャがあります。 マージを実行すると、デフォルトでテーブル全体がロックされるようです。 トランザクション内でこのストアドプロシージャを呼び出して、他の処理も実行していて、影響を受ける行のみをロックしたい場合。 ヒントを試しMERGE INTO myTable WITH (READPAST)てみましたが、ロックが少なかったようです。しかし、ms docに、主キーでさえもバイパスして重複キーを挿入する可能性があるという警告がありました。 これが私のテーブルスキーマです: CREATE TABLE StudentDetails ( StudentID INTEGER PRIMARY KEY, StudentName VARCHAR(15) ) GO INSERT INTO StudentDetails VALUES(1,'WANG') INSERT INTO StudentDetails VALUES(2,'JOHNSON') GO CREATE TABLE StudentTotalMarks ( Id INT IDENTITY PRIMARY KEY, StudentID INTEGER REFERENCES StudentDetails, StudentMarks INTEGER ) GO INSERT INTO …

7
Oracleデータベースが起動していることをどのように確認しますか?
このアプリケーションでは、Oracleデータベースに接続するための構成ファイル(URL、ユーザー名、パスワード)があります。 アプリケーションの起動には2〜5分かかります。データベースに問題がある場合、ログにこれが表示されますが、2〜5分待つ必要があります。これは長い時間です。 そのため、データベースがすべて正常でオンラインであることをすばやく簡単に確認する方法を見つけたいと思います。 どうすればいいのかわかりますか?
13 oracle 


2
mongodb接続URIで認証データベースとターゲットデータベースを個別に指定する方法
この接続uriを使用して、mongodbに接続しています:mongodb://user:password@localhost/admin。adminボット認証およびターゲットデータベースとして使用します。URIをadmin認証として使用するが、別のデータベースに接続できるようにするにはどうすればよいですか?例として以下のコマンドを参照してください: mongo --host localhost -u user -p password --authentication admin test 上記のコマンドはadmin認証データベースとして使用されますが、testデータベースに接続します。uriで同じことをするにはどうすればよいですか?

2
PostgreSQLでDISTINCT ONを高速化する方法は?
station_logsPostgreSQL 9.6データベースにテーブルがあります。 Column | Type | ---------------+-----------------------------+ id | bigint | bigserial station_id | integer | not null submitted_at | timestamp without time zone | level_sensor | double precision | Indexes: "station_logs_pkey" PRIMARY KEY, btree (id) "uniq_sid_sat" UNIQUE CONSTRAINT, btree (station_id, submitted_at) それぞれlevel_sensorについてsubmitted_at、に基づいて最後の値を取得しようとしていますstation_id。固有のstation_id値は約400 個、1日あたり約20,000行station_idです。 インデックスを作成する前に: EXPLAIN ANALYZE SELECT DISTINCT ON(station_id) …

1
MySQL:トランザクションは行をロックしますか?
これまでにMySQLトランザクションを使用したことはありません。何かを明確にしたいだけです。 2人のユーザーが正確な時間にクエリを実行した場合、MySQLはこれをどのように処理しますか?たとえば、ユーザーがレコードを更新しようとしています。 user1:テーブルセットの更新column = column-4 where column_id = 1; user2:テーブルセットを更新しますcolumn = column-7 where column_id = 1; トランザクションを使用する場合、MySQLは最初に実行されるクエリを選択し、最初のクエリがコミットされるまで2番目のユーザーをロックしますか?それはテーブルロックですか、それとも行ロックですか? 3番目のユーザーがselectステートメントを発行するとどうなりますか?MySQLが返す値は何ですか? PSこれはInnodbにあります。

2
MongoDBドキュメントが検証に失敗した理由を確認するにはどうすればよいですか?
MongoDBドキュメントの挿入が検証に失敗した理由を判断するにはどうすればよいですか?返されるのは、「ドキュメントの検証に失敗しました」というwriteErrorだけです。これはあまり役に立ちません。 (これは頻繁に発生します。特定の例について助けを求めるのではなく、これらを適切にデバッグする方法を理解したいと思います。)

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