タグ付けされた質問 「sql-server」

Microsoft SQL Serverのすべてのバージョン(MySQL以外)。sql-server-2016のようなバージョン固有のタグも追加してください。これは、質問に関連することが多いためです。

3
SQL Server-複数の累計
トランザクションを含むベーステーブルがあり、累計を含むテーブルを作成する必要があります。それらはアカウントごとである必要があり、さらに各トランザクションのいくつかの実行合計が(トランザクションタイプによって異なります)あり、その中にサブアカウントごとのいくつかの実行合計があります。 私のベーステーブルには次のフィールドがあります(多かれ少なかれ)。 AccountID | SubAccountID | TransactionType | TransactionAmount Account / TransactionTypeごとに約4種類の実行合計があり、Account / SubAccount / TransactionTypeごとに実行合計が2つあり、それぞれ約10のサブアカウントを持つ約200万のアカウントがあり、約10Kのトランザクションを取得している毎分(最大負荷時)、どのように実行しますか? これがSQLジョブを介して非同期で実行され、トランザクション自体の一部ではなく集計を作成することも必須です。 私はここでカーソルを使用してかなり立ち往生しています-時間がかかりすぎます。私は多かれ少なかれ同じことをしているアドバイス/記事に本当に感謝します。

4
別のSQLインスタンスにアクセスするストアドプロシージャの実行
この質問が既に尋ねられた別の質問が繰り返される場合、私は謝罪します。私は何時間も検索しましたが、自分の状況に合うものを見つけていません。 望ましい結果 SQL認証を使用するユーザーは、Server1(デフォルトのインスタンス)上のDatabase1に対する実行権限を持っています。ユーザーは、プロセスの一部として、Server1 \ Instance2上のデータベース2にアクセスするストアドプロシージャを実行します。安全でシンプルなものにしたいと思います(どちらも重要です)。 より詳しい情報 私のWindows資格情報は、(同じサーバー上にある)両方のインスタンスにアクセスできます。したがって、ログインの下で問題なくストアドプロシージャを実行できます。ただし、ユーザーに自分のアクセスレベルを付与したくありません。ユーザーがドメインにいないため、SQLログインも使用する必要があります。 ストアドプロシージャに、そのプロシージャだけのアクセスレベルを与えたいと思います。私はシステム管理者なので、その手順に必要なすべてをユーザーに提供します。それが機能するようになったら、おそらく私の目的ではなく、その目的のためだけにアカウントを作成しますが、ストアドプロシージャの動作を制御するので、どちらにしても安全です。 "WITH EXECUTE AS"ステートメントをストアドプロシージャに入れてみましたが、Windowsログイン情報を取得できませんでした。私がそれを入れると、ストアドプロシージャをコンパイルすると次のエラーが発生します: ユーザー 'domain \ jdoe'は、存在しないか、権限がないため、実行できません。 私が言ったように、ユーザーは両方のサーバーのsysadminなので、それ以上何が必要かわかりません。 私は以下を調べました: 信頼できる-データベースを公開しないほうがいい リンクサーバー-追加のアクセス許可を与えたくありません。他のデータベースが自分のデータベースにアクセスすることを信頼していません。また、自分のデータベースが他のすべてのデータベースにアクセスすることを信頼していません。 証明書-これは複雑で難しいようです。これを実行し、維持するための非常に簡単な方法を見つけられない限り、問題の価値があるかどうかはわかりません。 所有権の連鎖-繰り返しますが、怖いです。私の目標がセキュリティ問題を防ぐことであるとき、これはより多くのセキュリティ問題を引き起こすようです。 ミラー化されたユーザー-他のサーバーインスタンスに同じ(明らかに異なるSID)ユーザーを作成し、同じパスワードを与えました。立ち入り禁止。 私は明白な何かを見逃しているように感じますが、それが何かはわかりません。一日中壁に頭をぶつけてきたので、近すぎて見られないだろう。ここで誰かが私に手を差し伸べるか、私を正しい方向に向けてくれれば幸いです。私は多くのMSDN記事を読んだと言います(男の子は嫌いですか?私が知りたいことを教えてくれないようです)。私が本当に欲しいのは、これを行う方法を順を追って説明するシンプルで簡単なチュートリアルです。それ以外に、私が進むべき方向の一般的な表示でさえ役立つでしょう。

1
Stack OverflowはSQL Server Web Editionで実行できますか?
多数のユーザーに対応する必要がある新しいWebベンチャーを始めています。 SQL Server WebエディションのSPLAライセンスには自信がありますが、Standard、Enterprise、またはDataCenterへのアップグレードを考慮に入れる必要があるかどうかを知りたいです(これは間違いなくこれになります)。 必要になる前にスケーリングについて考えるべきではないことはわかっていますが、これはサイトのアーキテクチャとビジネスプランに影響します。 プロセッサーの制限はスレッドではなく物理プロセッサーごとであることを知っているので、心配はいりません。ただし、ミラーリング機能とバックアップ機能の一部が心配になります。SOはこれらの機能に依存していますか? tl; dr: Stack OverflowのようなサイトはSQL Server Webで実行できますか?メンテナンスと高可用性のどの側面を達成することは不可能でしょうか?

4
リンクサーバー全体のリモートクエリに関するSQLパフォーマンスの問題
このsproc create proc dbo.Get_Accounts as begin declare @current_date datetime set @current_date = dbo.fn_currdate() select [fields] into dbo.current_accounts from linkedserver.database.dbo.accounts where date = @current_date end 10分後に継続的に失敗し、次のエラーメッセージが表示されます。 サーバー:メッセージ7399、レベル16、状態1、行1 OLE DBプロバイダー 'SQLOLEDB'がエラーを報告しました。リソース制限に達したため、プロバイダーによって実行が終了しました。[OLE / DBプロバイダーがメッセージを返しました:タイムアウト期限切れ] OLE DBエラートレース[OLE / DBプロバイダー 'SQLOLEDB' ICommandText :: Executeが0x80040e31を返しました:リソース制限に達したため、プロバイダーによって実行が終了しました。 ただし、日付がハードコードされた対話型クエリウィンドウで、同じデータベース(リモートデータベースではない)から同じクエリを実行すると、次のようになります。 select [fields] into dbo.current_accounts from linkedserver.database.dbo.accounts where date = '1/20/2012' …

3
SQL Server 2008または2012をどのようにスケーリングしますか?
SQL Server 2008(または2012)をどのようにスケーリングしますか?基本的に、2つのオプションがあることを理解しています。 拡大する: CPUがバインドされている場合、1 CPUコアから2から4に明らかになります。または、RAM使用量が急増している場合は、RAMを追加するだけです。SQL Server 2008/2012は、アプリケーションレベルの変更がないと想定して、実際にスラックを取り、そのようにスケールアップしますか?憶測を最小限に抑えるために、CPUサイクルの書き込みやクロス結合など、馬鹿げたことをしていないとしましょう。 規格外: スケールアウトがどのように機能するかは明確ではありません。私が最初のSQLサーバーのすぐ隣に別のSQLサーバーを追加した場合、クエリはどのサーバーで実行するかをどのようにして知るのですか?前面にロードバランサーはありますか(SQL Serverソフトウェアに付属していますか?)?スケールアウトを機能させるためにアプリケーションレベルの変更が必要ですか?それとも私が持っているデータをシャードとデータベース・サーバーの正しいモーニングコールは、キーをシャーディングデータに応じたことをカスタムコードを持っていますか? より経験豊富な人々からのインプットをいただければ幸いです。

1
SQL Serverで非主キーとの関係をどのように作成しますか?
私は、UserIDと呼ばれる主キーとUserNameと呼ばれる別の列の2つの列を持つUsersテーブルを持っています。 UserID(int)PK ユーザー名(varchar(256) どちらも一意ですが、他のテーブルの参照としてUserNameを使用する理由を考えました。たとえば、注文テーブルには、useridではなくUserNameによるuserへの参照があります。 OrderID ユーザー名 SQL Serverのカスケード更新/削除機能を利用できるように、UserNameとUsersテーブルを参照するすべてのテーブル間にリレーションシップを作成します。 しかし、SQL Serverでは、主キー以外の列に関係を作成できません。ユーザーテーブルを変更せずにカスケード更新/削除機能を取得して、UserNameをUserIDではなく主キーにする方法はありますか?

2
SQLサーバーデータベースを読み取り専用にする利点?
私はレポートデータベースを使用しています。これは、すべての実用的な目的で読み取り専用のデータベースです。データが作成され、動的データベースが生成され、このデータベースで表示されます。 このデータベースを読み取り専用にすることを考えていました。 読み取り専用データベースに関して私が聞きたいことのいくつかは データのみが読み取り専用ですか?このデータベースにインデックスまたはビューを作成できますか? 読み取り専用データベースを使用することのパフォーマンス上の利点は何ですか?例:共有ロックなどを使用したSELECTクエリ 読み取り専用データベースを使用することの欠点はありますか? 読み取り専用データベースを使用する際に従うべきベストプラクティスはありますか?

1
グローバルフラグを指定したDBCC TRACEON
SQL Server 2005デッドロックシナリオのトラブルシューティングの質問で、DBCC TRACEON (1204, -1)デッドロックをグローバルに追跡するためにを使用する提案がありました。 BOL でこのコマンドについて読むとき、ユーザーまたはアプリケーションがシステム上でステートメントを同時に実行していないときにのみ使用する必要があることを示しています。このトレースフラグを有効にするときは、シングルユーザーモードにする必要があるということですか。そしてさらに、なぜそれが必要であり、アドバイスに従うことが重要ですか?(常に稼働している実動システムでは、従うのが少し難しいようです。)

1
SQL Serverを最適化するための最適なツール(クエリではなくデータベース自体)
SQL Serverデータベース全体を最適化するのに最適なツールは何か知っていますか? クエリの記述方法ではなく、データベースファイル、インデックス、ページング、断片化を管理する方法について話しています。 苦痛な真実 ツールとDBAの間の永遠の戦いはまだそこにあります...しかし、製品が成長するまで基本を知りたかったので、不機嫌なDBAを雇うことができます:-)

2
SQL Server 2008 R2ログインを削除できません
数日前にSQL Serverログインを作成しました。今、私は同じものを削除する必要があります。そこで、SQL Server Management Studio => Security => Loginsに移動して、削除するログインを選択しました。それは言う情報メッセージを表示します サーバーログインを削除しても、ログインに関連付けられているデータベースユーザーは削除されません。プロセスを完了するには、各データベースのユーザーを削除します。最初にスキーマの所有権を新しいユーザーに譲渡する必要があるかもしれません。 このメッセージを無視して、削除プロセスを確認すると、次のような致命的なエラーが発生します。 ログイン「iis_login」のドロップに失敗しました。(Microsoft.SqlServer.Smo) Transact-SQLステートメントまたはバッチの実行中に例外が発生しました。(Microsoft.SqlServer.ConnectionInfo) このログインは1個のジョブの所有者です。ログインを削除する前に、これらのジョブを削除または再割り当てする必要があります。(Microsoft SQL Server、エラー:15170) ログインによって所有されているジョブ(上記のメッセージによる)があるときに、ログインを削除するにはどうすればよいですか。 よろしく、Nirvan。


6
一意のインデックスの最大16列を回避する方法
CREATE INDEXドキュメントによると: 最大16列を単一の複合インデックスキーに組み合わせることができます。 一意の組み合わせを形成する必要がある〜18列のテーブルがあります。このテーブルはパフォーマンスの影響を受けません -値を更新したりレコードを挿入したりすることはほとんどありません。レコードが重複しないようにする必要があるだけです。単純な一意性の制約を課すことができると考えました。 何か案は?より良い方法がある場合は、一意のインデックス/制約を完全に回避することにオープンです。

4
SQL Server:カスタマイズされたデータベースロールを固定されたロールよりも優先する理由は何ですか?
これは少しあいまいかもしれませんが、データベースのセキュリティを制御する固定データベースロールを使用するDBAの量を考えていました。ですから、問題は、固定データベースロール(db_datareaderなど)よりもカスタマイズされたデータベースロールを優先する理由があるのでしょうか。

1
SQL Serverの権限について
SQL Server Management Studioで、SQL Server 2008 R2 Express Editionのインスタンスを応援しています。アクセス許可のしくみを理解しようとしています。 私が見ることができるのは(これらのエンティティの多くのプロパティを介して) サーバーログインをデータベースユーザーにリンクできます データベースユーザーは1つ以上のデータベースロールを持つことができます データベースロールの1つは、スキーマdb_datawriterを所有するdb_datawriterです。 しかし、その時点でトレイルは寒くなります。スキーマdb_datawriterのプロパティの下には、空白の権限ページがあります。 スキーマdb_datawriterの権限を正確に定義するものは何ですか?

2
MongoDBでDENSE_RANKに相当するものを効率的に実行する方法はありますか?
SQL ServerとOracleの両方にDENSE_RANK関数があります。MapReduceに頼ることなく、MongoDBで同様のことを行う方法はありますか?つまり、次のようなT-SQL選択句があるとします。 SELECT DENSE_RANK() OVER(ORDER BY SomeField DESC) SomeRank MongoDBで同じことをする最良の方法は何ですか? (注:これは、MongoDBの質問の再投稿です。DBA からのフィードバックをもっと期待しています...)

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