データベース管理者

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


5
キー/値ストアデータベースとは何ですか?
NoSQLのウィキペディアのページを見て、キー/値ストアデータベースのバリエーションをいくつかリストしていますが、このコンテキストでのキー/値ストアの意味についての詳細は見つかりません。誰かが私に説明をしたり、説明をリンクしたりできますか?また、このようなデータベースはいつ使用しますか?
56 nosql 

6
ウィンドウ関数を使用した日付範囲のローリングサム
日付範囲でローリングサムを計算する必要があります。説明するために、AdventureWorksサンプルデータベースを使用して、次の仮想構文で必要なことを正確に実行できます。 SELECT TH.ProductID, TH.TransactionDate, TH.ActualCost, RollingSum45 = SUM(TH.ActualCost) OVER ( PARTITION BY TH.ProductID ORDER BY TH.TransactionDate RANGE BETWEEN INTERVAL 45 DAY PRECEDING AND CURRENT ROW) FROM Production.TransactionHistory AS TH ORDER BY TH.ProductID, TH.TransactionDate, TH.ReferenceOrderID; 悲しいことに、RANGEウィンドウフレーム範囲は現在SQL Serverで間隔を許可していません。 サブクエリと通常の(非ウィンドウ)集計を使用してソリューションを作成できることを知っています。 SELECT TH.ProductID, TH.TransactionDate, TH.ActualCost, RollingSum45 = ( SELECT SUM(TH2.ActualCost) FROM Production.TransactionHistory AS TH2 …

7
人の名前がNullの場合、どのようにデータベースが破損しますか?
私はこの記事をBBCで読んでいました。ジェニファーヌルという名前の人物の物語と、飛行機のチケットの予約、ネットバンキングなどのオンラインデータベースの使用中に日々の問題にどのように直面しているかを説明しています。 私はデータベースに精通しておらず、あまり頻繁に使用しません。学習用のWebサイトを作成したとき、サーバー側のフォーム検証では正規表現を使用しました。私が覚えていることから、「Null」という名前を喜んで受け入れます。私はそれを試していないが。 この状況が発生する場合、誰かが技術を説明できますか?フォームの検証は単にやっているstring == NULLことですか?それでも私は考えていないNULL is same as "NULL"。

6
デッドロックの主な原因は何ですか?それを防ぐことができますか?
最近、ASP.NETアプリケーションの1つがデータベースデッドロックエラーを表示し、エラーをチェックして修正するように要求されました。デッドロックの原因は、カーソル内のテーブルを厳密に更新しているストアドプロシージャであることがわかりました。 このエラーを見たのはこれが初めてで、効果的に追跡して修正する方法がわかりませんでした。私が知っているすべての可能な方法を試してみましたが、最終的に、更新されているテーブルには主キーがないことがわかりました!幸いなことに、これはID列でした。 後で、展開用のデータベースを台無しにした開発者を見つけました。主キーを追加し、問題は解決しました。 私は幸せを感じて、私のプロジェクトに戻って、そのデッドロックの理由を見つけるためにいくつかの研究をしました... どうやら、デッドロックを引き起こしたのは循環待機状態だったようです。更新は、主キーの場合よりも主キーなしの方が明らかに時間がかかります。 明確に定義された結論ではないことを知っているので、ここに投稿しています... 主キーの欠落が問題ですか? (相互排除、保留と待機、プリエンプションなし、循環待機)以外のデッドロックを引き起こす他の条件はありますか? デッドロックを防止および追跡するにはどうすればよいですか?

6
リテラル値のみを使用するWHERE句でISNULL()を置き換える別の方法は何ですか?
これが何でないか: これは、ユーザー入力を受け入れるか、変数を使用するキャッチオールクエリに関する質問ではありません。 これは、厳密に述語と比較するために値をカナリア値に置き換える句でISNULL()使用されるクエリと、それらのクエリをSQL Server でSARGableに書き換えるさまざまな方法に関するものです。WHERENULL 向こうに席がありませんか? このクエリ例は、SQL Server 2016のStack Overflowデータベースのローカルコピーに対するもので、NULL年齢または18歳未満のユーザーを探します。 SELECT COUNT(*) FROM dbo.Users AS u WHERE ISNULL(u.Age, 17) < 18; クエリプランは、非常に思慮深い非クラスター化インデックスのスキャンを示しています。 スキャン演算子は、SQL Serverの最新バージョンの実際の実行計画XMLへの追加のおかげで、すべてのスティンキン行を読み取ったことを示します。 全体として、9157の読み取りを行い、約0.5秒のCPU時間を使用します。 Table 'Users'. Scan count 1, logical reads 9157, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads …
55 sql-server 

4
Mac OS Xでpsqlを実行する方法は?
ワンクリックインストーラーを使用して、Mac OS Xを搭載したコンピューターにPostgreSQLをインストールしました。次に、psqlコマンドを使用してPostgreSQLにアクセスしようとしましたが、使用できないようです。 私はこのメッセージを受け取ります: psql -bash: psql: command not found もっとインストールする必要がありますか?または、PostgreSQLをコンピューターで使用できるように構成するにはどうすればよいですか?

13
PostgreSQLがMacで実行されていない
エラー全体は次のとおりです。 psql:サーバーに接続できませんでした:そのようなファイルまたはディレクトリはありません。サーバーはローカルで実行されており、Unixドメインソケット「/tmp/.s.PGSQL.5432」で接続を受け入れていますか? MacでHomebrewを使用してPostgresqlをセットアップするのは今回が2回目で、何が起こっているのかわかりません。以前は機能していました。ある時点で、混乱させるコマンドを入力したに違いありません。よく分かりません。これで、コマンドラインからSQLコマンドを入力するたびに、上記のメッセージが表示されます。サーバーが実行されているかどうかを確認するコマンドを実行しましたが、実行されていないようです。を使用してサーバーを起動しようとした場合 $ postgres -D / usr / local / pgsql / data 次のエラーが表示されます。 postgresはサーバー設定ファイル「/usr/local/pgsql/data/postgresql.conf」にアクセスできません:そのようなファイルまたはディレクトリはありません Homebrewを使用してPostgresqlをアンインストールして再インストールしましたが、問題は解決しません。私はこれをどのように機能させるかについて完全に迷っています。任意の助けをいただければ幸いです。
55 postgresql 



3
MySQLでビューを使用する場合
分析で使用するために複数の結合からテーブルを作成する場合、新しいテーブルを作成するよりもビューを使用する方が適切ですか? ビューを使用したい理由の1つは、データベーススキーマが管理者によってRuby内から開発されており、Rubyに詳しくないことです。テーブルの作成をリクエストできますが、追加の手順が必要であり、新しい結合を開発/テストする際の柔軟性を高めたいです。 SO(Rを使用する場合、SQLを使用する場合)に関連する質問への回答に従ってビューを使用し始めました。トップ投票の答えは、「データが単一のテーブルに収まるまでSQLでデータ操作を行い、残りをRで行う」ことから始まります。 ビューの使用を開始しましたが、ビューに関するいくつかの問題に遭遇しました。 クエリははるかに遅い ビューは、分析に使用する実稼働データベースからバックアップデータベースにダンプされません。 ビューはこの用途に適していますか?もしそうなら、パフォーマンスのペナルティを期待すべきですか?ビューのクエリを高速化する方法はありますか?

3
外部キーを含む行を挿入するにはどうすればよいですか?
PostgreSQL v9.1を使用します。次の表があります。 CREATE TABLE foo ( id BIGSERIAL NOT NULL UNIQUE PRIMARY KEY, type VARCHAR(60) NOT NULL UNIQUE ); CREATE TABLE bar ( id BIGSERIAL NOT NULL UNIQUE PRIMARY KEY, description VARCHAR(40) NOT NULL UNIQUE, foo_id BIGINT NOT NULL REFERENCES foo ON DELETE RESTRICT ); 最初のテーブルfooが次のように設定されているとします: INSERT INTO foo (type) …

2
Unicodeパラメーターと変数名を作成する方法
このすべての機能: CREATE DATABASE [¯\_(ツ)_/¯]; GO USE [¯\_(ツ)_/¯]; GO CREATE SCHEMA [¯\_(ツ)_/¯]; GO CREATE TABLE [¯\_(ツ)_/¯].[¯\_(ツ)_/¯]([¯\_(ツ)_/¯] NVARCHAR(20)); GO CREATE UNIQUE CLUSTERED INDEX [¯\_(ツ)_/¯] ON [¯\_(ツ)_/¯].[¯\_(ツ)_/¯]([¯\_(ツ)_/¯]); GO INSERT INTO [¯\_(ツ)_/¯].[¯\_(ツ)_/¯]([¯\_(ツ)_/¯]) VALUES (N'[¯\_(ツ)_/¯]'); GO CREATE VIEW [¯\_(ツ)_/¯].[vw_¯\_(ツ)_/¯] AS SELECT [¯\_(ツ)_/¯] FROM [¯\_(ツ)_/¯].[¯\_(ツ)_/¯]; GO CREATE PROC [¯\_(ツ)_/¯].[sp_¯\_(ツ)_/¯] @Shrug NVARCHAR(20) AS SELECT [¯\_(ツ)_/¯] FROM [¯\_(ツ)_/¯].[vw_¯\_(ツ)_/¯] …

11
配列パラメーターをストアドプロシージャに渡す
大量のレコード(1000枚)を取得してそれらを処理するプロセスがあり、完了したら、大量のレコードを処理済みとしてマークする必要があります。IDの大きなリストでこれを示すことができます。「ループ内の更新」パターンを回避しようとしているので、このIDのバッグをMS SQL Server 2008ストアドプロシージャに送信するより効率的な方法を見つけたいと思います。 提案#1-テーブル値パラメーター。IDフィールドだけでテーブルタイプを定義し、更新するIDでいっぱいのテーブルを送信できます。 提案#2-proc本体のOPENXML()を使用したXMLパラメーター(varchar)。 提案#3-リストの解析。扱いにくく、エラーが発生しやすいと思われるため、可能であれば、これを避けたいと思います。 これらの中に好みがありますか、それとも私が見逃したアイデアはありますか?

2
テーブル値関数でテーブルを結合する方法は?
ユーザー定義関数があります: create function ut_FooFunc(@fooID bigint, @anotherParam tinyint) returns @tbl Table (Field1 int, Field2 varchar(100)) as begin -- blah blah end 次のように、これを別のテーブルに参加させたいと思います。 select f.ID, f.Desc, u.Field1, u.Field2 from Foo f join ut_FooFunc(f.ID, 1) u -- doesn't work where f.SomeCriterion = 1 言い換えると、1であるすべてのFooレコードについて、の入力に対してから返されるおよびの値とともに、およびSomeCriterionを表示する必要があります。Foo IDDescField1Field2ut_FooFuncFoo.ID これを行うための構文は何ですか?

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