データベース管理者

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


14
PostgreSQLはローカルで実行されていますが、接続できません。どうして?
最近、私のマシンをMac OS X Lion(10.7.4)からMountain Lion(10.8)に更新したため、PostgreSQLのインストールが中断されたと思います。もともとはHomebrew経由でインストールされました。私はDBAではありませんが、誰かがこれのトラブルシューティング方法を教えてくれることを望んでいます。 接続できません(ただし、Mountain Lionの前に接続できました): $ psql -U rails -d myapp_development psql: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"? しかし、Postgresはまだ明確に実行されています。 $ ps aux | grep postgres meltemi 2010 0.0 0.0 2444124 5292 …


5
SQL Serverでデッドロックなしでキーテーブルへの同時アクセスを処理する
IDENTITY他のさまざまなテーブルのフィールドの代わりとしてレガシーアプリケーションで使用されるテーブルがあります。 テーブルの各行にはLastID、で名前が付けられたフィールドで最後に使用されたIDが格納されIDNameます。 ストアドプロシージャがデッドロックを取得することがあります-適切なエラーハンドラを作成したと思います。しかし、この方法論が思うように機能するかどうか、またはここで間違ったツリーを探しているかどうかに興味があります。 デッドロックがまったくない状態でこのテーブルにアクセスする方法があるはずです。 データベース自体はで構成されREAD_COMMITTED_SNAPSHOT = 1ます。 まず、表を次に示します。 CREATE TABLE [dbo].[tblIDs]( [IDListID] [int] NOT NULL CONSTRAINT PK_tblIDs PRIMARY KEY CLUSTERED IDENTITY(1,1) , [IDName] [nvarchar](255) NULL, [LastID] [int] NULL, ); そして、IDNameフィールドの非クラスター化インデックス: CREATE NONCLUSTERED INDEX [IX_tblIDs_IDName] ON [dbo].[tblIDs] ( [IDName] ASC ) WITH ( PAD_INDEX = OFF , STATISTICS_NORECOMPUTE = OFF , …

3
変数をインライン化するときにSQL Serverがより良い実行計画を使用するのはなぜですか?
最適化しようとしているSQLクエリがあります。 DECLARE @Id UNIQUEIDENTIFIER = 'cec094e5-b312-4b13-997a-c91a8c662962' SELECT Id, MIN(SomeTimestamp), MAX(SomeInt) FROM dbo.MyTable WHERE Id = @Id AND SomeBit = 1 GROUP BY Id MyTable 次の2つのインデックスがあります。 CREATE NONCLUSTERED INDEX IX_MyTable_SomeTimestamp_Includes ON dbo.MyTable (SomeTimestamp ASC) INCLUDE(Id, SomeInt) CREATE NONCLUSTERED INDEX IX_MyTable_Id_SomeBit_Includes ON dbo.MyTable (Id, SomeBit) INCLUDE (TotallyUnrelatedTimestamp) 上記のとおりにクエリを実行すると、SQL Serverは最初のインデックスをスキャンします。その結果、189,703の論理読み取りと2〜3秒の時間がかかります。 @Id変数をインライン化してクエリを再度実行すると、SQL Serverは2番目のインデックスを検索します。その結果、論理読み取りは104回だけで、期間は0.001秒(基本的に瞬時)になります。 変数が必要ですが、SQLで適切なプランを使用する必要があります。一時的な解決策として、クエリにインデックスヒントを付けましたが、クエリは基本的に瞬時です。ただし、可能な場合はインデックスヒントから離れるようにします。私は通常、クエリオプティマイザーがその仕事をすることができない場合、何をすべきかを明示的に伝えることなくそれを支援するためにできること(またはやめること)があると思います。 …





6
SqlClientをデフォルトでARITHABORT ONにする
まず最初に:互換性レベル80のデータベースでMS SQL Server 2008を使用し、.Netで接続していSystem.Data.SqlClient.SqlConnectionます。 パフォーマンス上の理由から、インデックス付きビューを作成しました。そのため、ビューで参照されるテーブルの更新はで行う必要がありますARITHABORT ON。ただし、プロファイラーはSqlClientがに接続していることを示しているARITHABORT OFFため、これらのテーブルの更新は失敗しています。 SqlClientを使用するための中央構成設定はありますARITHABORT ONか?私が見つけることができた最善の方法は、接続が開かれるたびに手動で実行することですが、これを行うために既存のコードベースを更新することはかなり大きなタスクになるので、より良い方法を見つけたいです。

5
PostgreSQLの選択クエリでデフォルト値を使用するにはどうすればよいですか?
行が返されない場合に使用する列のデフォルト値を使用したいと思います。PostgreSQLで可能ですか?どうすればいいですか?または、これを解決できる他の方法はありますか? たとえば、次のようなものです。 SELECT MAX(post_id) AS max_id DEFAULT 0 FROM my_table WHERE org_id = 3 そしてorg_id = 3、テーブルに行がない場合、私は返したいです0。

9
Oracle DUALテーブルはどのように機能しますか?
SQL> desc dual Name Null? Type ----------------------------------------- -------- ---------------------------- DUMMY VARCHAR2(1) SQL> select 4*5 from dual; 4*5 ---------- 20 SQL> 本当に奇妙だと思います。デュアルで4 * 5という名前の列がない場合、selectステートメントはどのように機能しますか? また、独自のデュアルテーブルを作成するときに同じ動作が見られないのはなぜですか? SQL> create table dual2(dummy varchar2(1)); Table created. SQL> desc dual2 Name Null? Type ----------------------------------------- -------- ---------------------------- DUMMY VARCHAR2(1) SQL> select 4*5 from dual2; no rows selected …
32 oracle 


1
ステートメントの実行速度がネットワーク接続に依存するのはなぜですか?
T-SQLの実行速度は、サーバーに対するネットワーク接続の待機時間に依存しているようです。SQL Serverがクライアントにレポートするものがない場合、実行されるまで実行されますが、テストでは別の話が示されます。 create procedure UselessLoop @I int as declare @D datetime = getdate() while @I > 0 set @I -= 1 print datediff(millisecond, @D, getdate()) exec UselessLoop 100000 Server Milliseconds local 53 nearby 63 faraway 660 exec UselessLoop 1000000 Server Milliseconds local 546 nearby 640 faraway 6183 テストは、SSMSを使用して異なるコンピューターから同じサーバーに対して実行されます。ローカルはサーバーから実行され、近くは同じローカルネットワーク上にあり、遠くは1ギガビットファイバーで接続された500 km離れた別のオフィスから実行されます。 実行されるステートメントの数に直接依存する、SQL …
31 sql-server  t-sql 

8
不明なソースからバックアップを復元することのセキュリティへの影響
シナリオ:データベースのバックアップを渡され、サーバー(他のデータベースを既にホストしている)に復元するように指示されましたが、バックアップの内容やソースを信頼する必要があるかどうかに関する有用な情報は提供されません。 質問1:悪意のある可能性のあるバックアップの復元の潜在的な影響は何ですか? 質問2:悪意のある可能性のあるバックアップの復元の影響から、サーバー/他のデータベースのデータを保護するために何ができますか?RESTORE VERIFYONLY良い最初のステップのようです。最終的な答えは、おそらく「外の世界へのアクセスのないサンドボックスVMにデータベースを復元する」でしょうが、そのオプションはテーブルから外れていると仮定しましょう。この状況で他に何をすべきですか?

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