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

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

2
フィルターされたインデックス内にORを配置する場合の回避策はありますか?
フィルターされたインデックス内にORを配置する場合の回避策はありますか? create index FIDX_tblbOrders_sdtmOrdCreated_INCL on dbo.tblBOrder(sdtmOrdCreated) INCLUDE (sintMarketID, strCurrencyCode, sintOrderStatusID ) WHERE ((sintMarketId=1) AND ( (sintOrderStatusId < 9) OR (sintOrderStatusId > 14))) 上記のインデックスを作成しようとしています。sintOrderStatusIdがIN(9-14)である状況には興味がないためです。 もちろん、ビューやインデックス付きビューを作成することはできますが、それを避けようとしていました。 情報を追加するだけ:sintOrderStatusIdはsmallint NOT NULLであり、可能な値の範囲は1〜30です。9〜14は避けてください。したがって、フィルターされたインデックスです。

2
SQL Server 2008:毎日再起動するシーケンス
:私は、次の形式の文字列を使用して列を更新する必要があり、トリガーを追加する必要があり<current_date>_<per_day_incremental_id>、例えば2015-10-01_36。IDは増分である必要があり、ギャップは許容されます。 私のアプローチはかなり素朴です。現在の日付と現在のシーケンス値でテーブルを作成し、その中に単一のレコードを保持します。 create table DailySequence ( date date, sequence int ) insert into DailySequence values (getdate(), 1); CREATE TRIGGER MakeHumanReadableId ON dbo.AuditMeasures FOR INSERT AS DECLARE @ret int; DECLARE @tempDate date; DECLARE @nowDate date; SET @nowDate = getdate(); SELECT @ret = t.sequence, @tempDate = t.date from DailySequence as t; IF …

2
ハッシュされたパスワードでアプリケーションロールをスクリプト化する
ハッシュされたパスワードを使用してアプリケーションロールをスクリプト化する必要があるため、データベースから別のデータベースにコピーできます。 アプリケーションロールを使用して、信頼されていないユーザーに昇格されたアクセスを提供する次のサンプルコードを考えます。 USE tempdb; CREATE LOGIN LimitedLogin WITH PASSWORD = 'Password1' , CHECK_POLICY = OFF , CHECK_EXPIRATION = OFF; CREATE USER LimitedLogin FOR LOGIN LimitedLogin WITH DEFAULT_SCHEMA = dbo; CREATE APPLICATION ROLE MyAppRole WITH PASSWORD = 'Password2' , DEFAULT_SCHEMA = dbo; EXEC sp_addrolemember @rolename = 'db_datareader' , @membername = 'MyAppRole'; …

2
データベースを使用してオブジェクトのロック/ロック解除を追跡する
オブジェクトのロック/ロック解除アクションを追跡する必要があります。オブジェクト(契約、パートナーなど)に対するアクションの前に、lockイベントが発行されます。アクションが終了すると、unlockイベントが発行されます。 ロックされているがまだロック解除されていないオブジェクトを取得したい。目標は、クエリをすばやく作成し、デッドロックを回避することです。 以下は表です create table locks ( id int identity, name varchar(255), lock int ) insert into locks values('a', 1) insert into locks values('b', 1) insert into locks values('c', 1) insert into locks values('d', 1) insert into locks values('a', 0) insert into locks values('c', 0) insert into locks values('a', 1) …

4
リンクサーバーから@@ SERVERNAMEを取得する
これは基本的な質問のようですが、答えは見つかりません-リンクサーバーからサーバー名/インスタンスなどを取得できるようにする必要があります。私はいくつかのことを試しました: select <linked server>.@@SERVERNAME; select <linked server>.SERVERPROPERTY('ServerName'); ...しかし喜びはない。何か案は? これはSQL 2008 R2&2014(2008R2はリンクサーバーです) 編集:エラーは次のとおりです。 メッセージ102、レベル15、状態1、行2 '@@ SERVERNAME'付近の構文が正しくありません。

2
Management Studioの登録済みサーバーのタブの色
SSMSでは、接続ごとにカスタムカラーを使用できます。 この情報がどこに保存されているか誰か知っていますか?色の設定を保持したいのですが、失います。 編集する オブジェクトエクスプローラーから接続すると、色を設定できます。しかし、これは登録済みサーバーで設定した色とは異なるようで、これが失われ続けています。(確かに、私はローミングプロファイルにいます。) 登録済みサーバーパネルを使用するのは、マルチサーバー操作を行うときだけであり、そのパネルを開いているときはさらに注意を払います。そのため、オブジェクトエクスプローラーに関連付けられた色も使用できるようにしたいと考えています。 ありがとう

3
SQL ServerをホストするVMの専用リソース
私の理解では、VMを使用する大きな利点の1つは、ホスト上の仮想マシン間でリソースを共有できることです。したがって、120個のCPUを搭載したホストに、それぞれに32個のCPUを搭載した5つのVMを配置できます。追加のCPUはVM間で「共有」され、ホストは必要に応じて動的にCPUを割り当てます。メモリについても同じです。 また、これはSQL Serverを格納するVMにとっては大きな問題であると理解していましたが、私のVM管理者は同意しません。誰かが何らかの形で証拠や文書を持っていますか? 問題かどうかはわかりませんが、VMWareを使用しています。

2
SQL Serverインスタンスの起動パラメーターの一覧表示
サーバーを再起動し、どのトレースフラグがアクティブであるかを確認しましたDBCC TRACESTATUS。 トレースフラグ:3688機能:開始および停止したトレースに関するエラーログへのメッセージを削除します ここでは、各トレースフラグの機能を確認できます。 フラグ3688 開始パラメーターは次のとおりです。 質問: T-SQLを使用して、SQL Serverサービスの起動パラメーターを確認するにはどうすればよいですか?

1
読み取り専用トランザクションのコミットとロールバックにパフォーマンスの違いはありますか?
(繰り返し可能な読み取り)トランザクション(BEGIN TRAN)を開いて、特定のレコードに対していくつかの作業を行います。まず、変更する必要があるデータがデータベースにあるかどうかを確認します。いくつかのケースでは、それがあり、それから私の変更に進みます。しかし、場合によっては何もすることはありません。この場合、私はCOMMIT TRANまたはまたはROLLBACK TRANストアドプロシージャから戻ります。現時点ではまだデータは変更されていないため、コミットとロールバックの効果は同じです。 コミットとロールバックのどちらを選択するかについて知っておくべき考慮事項はありますか?異なるパフォーマンスコストはありますか?その他の考慮事項?

3
Windows 10でのSQL Server 2008 R2の保守
Windows 10でSQL Server 2008 R2を実行する必要がありますが、サポートされていないため、更新を取得できません。新しいバージョンのSQL Serverをインストールすることはできません。すべてのサービスパックと累積的な更新プログラムをオンラインで見つけることができます。 質問: 更新を自動的に取得する方法はありますか? そうでない場合、すべてのサービスパックを順番にインストールする必要がありますか、それとも最新のものだけをインストールできますか?

3
インデックス調整の質問
私はいくつかのインデックスを調整していて、いくつかの問題があなたのアドバイスを望んでいるのを見ています 1つのテーブルに3つのインデックスがあります dbo.Address.IX_Address_ProfileId [1 KEY] ProfileId {int 4} Reads: 0 Writes:10,519 dbo.Address.IX_Address [2 KEYS] ProfileId {int 4}, InstanceId {int 4} Reads: 0 Writes:10,523 dbo.Address.IX_Address_profile_instance_addresstype [3 KEYS] ProfileId {int 4}, InstanceId {int 4}, AddressType {int 4} Reads: 149677 (53,247 seek) Writes:10,523 1-最初の2つのインデックスは本当に必要ですか、それとも削除する必要がありますか? 2- profileid = xxxxである使用条件を実行するクエリと、profileid = xxxxおよびInstanceID = xxxxxxである他の使用条件があります。オプティマイザが1番目または2番目ではなく3番目のインデックスを選択する理由 また、各インデックスでロック待機を取得するクエリを実行しています。これらのカウントを取得している場合、このインデックスを調整するにはどうすればよいですか? …

2
SQL Server Management Studioがクラッシュするのはなぜですか?
SSMSを開くと、次のメッセージが表示されます。 SSMS-SQL Server Management Studioで問題が発生したため終了します。ご不便をおかけしてしまい申し訳ございません。 私に何ができる? 再起動後も問題は解決せず、アドインをインストールしていません。 これは、Windows XPで実行されているSQL Server 2008 R2 SSMSです。 SSMSは以前このマシンでエラーなしで実行されていました。 SSMSは、SQL Serverパッケージだけからではなくインストールされました。パッケージを再インストールすることをお勧めしますか?または、SSMSを単独でインストールする方法は? すべてのユーザーに同じ問題が発生します。

1
CPU使用率は低いが信号待機が多い
私は、16のCPUを搭載したサーバーで、a max degree of parallelismが8、max worker threads設定が0に設定されています。 所定の時間、私の信号待機は20%でしたが、その間の私のOS CPU使用率は25%を超えることはありませんでした。誰かが私の信号待機が非常に高かった理由を説明できますか? 私のベンダーはクラス最高のスコアリングシステムを使用しており、信号待機が10%以下であると予想します。(CPUを追加せずに)これを修正するにはどうすればよいですか? NUMAノードごとに8個を超えるCPU はないため、トレースフラグ8048は適用されません。 最大のインスタンス待機はCXPACKET(70%)、次にPREEMPTIVE_OS_PIPEOPS(20%) cost threshold for parallelism50に設定されています。上げる必要がありますか?何に? これは、SQL Server専用の物理マシン(VMではない)です。 監視ツールを使用して、最も頻繁に実行されるクエリとプロシージャを特定しています。高CPU、高I / O、または高継続時間を確認しますか?通常、アプリはI / Oを集中的に使用するため、高いI / Oを調整します。しかし、問題はシグナル待機であるため、CPU使用率が高いことを確認する必要がありますか? アプリが追加のスレッドを必要とするウェアハウススタイルのクエリを実行するため、4 に下げるというMax Vernonの推奨を回避したいと思ってMAXDOPいました。

6
SQL Serverパフォーマンスベースラインモニタリングの作成
概要と比較可能なデータを取得するための私の現在のタスクは、さまざまな生産的なSQL Serverインスタンスに関するいくつかの数値を取得するためのパフォーマンスベースラインを作成することです。 私の考えは: 複数のDMVを使用したい プロファイラートレース(実行計画を含む)を含めたい perfmonデータを含めたい したがって、私が達成しようとしているのは、開始可能および停止可能(スケジュール可能でもあります)の一般的なパフォーマンスモニタリングです。 進行中のパフォーマンス最適化タスクの成功を識別するために必要なすべての情報 長期的な進捗状況を視覚化するのに役立つ、いくつかの集約された単純な図..特に 管理用;-) 個々のキューの変更とインデックス最適化タスクによる改善を比較するためのプロファイラートレース内の再実行可能な実行プラン パフォーマンスベースラインの作成について説明している情報がいくつか見つかりました。それらのほとんどは、非常に複雑であるか、目的のパフォーマンスインジケーターの1つ(主にパフォーマンスデータ)にのみ焦点を当てています。 最も一致するサンプル/説明は次のとおりです。SQLServerのパフォーマンスベースラインの作成 質問は: この種のパフォーマンスモニターをすばやく実行可能な方法で作成した経験がある人はいますか?

2
差分を生成する最も効率的な方法
SQLサーバーに次のようなテーブルがあります。 Id |Version |Name |date |fieldA |fieldB ..|fieldZ 1 |1 |Foo |20120101|23 | ..|25334123 2 |2 |Foo |20120101|23 |NULL ..|NULL 3 |2 |Bar |20120303|24 |123......|NULL 4 |2 |Bee |20120303|34 |-34......|NULL 入力データとバージョン番号を取得するdiffのストアドプロシージャに取り組んでいます。入力データには、名前からfieldZまでの列があります。ほとんどのフィールド列はNULLであることが期待されています。つまり、通常、各行には最初のいくつかのフィールドのデータのみが含まれ、残りはNULLです。名前、日付、およびバージョンは、テーブルに対する一意の制約を形成します。 特定のバージョンについて、このテーブルに関して入力されたデータを比較する必要があります。各行を比較する必要があります。行は名前、日付、バージョンで識別され、フィールドの列の値を変更すると、比較結果に表示されるようになります。 更新:すべてのフィールドが10進数である必要はありません。それらのいくつかはnvarcharである可能性があります。タイプを変換せずにdiffを実行したいのですが、diff出力はすべてをnvarcharに変換できるため、それは表示目的でのみ使用されるためです。 入力が次のようであり、要求されたバージョンが2であるとします。 Name |date |fieldA |fieldB|..|fieldZ Foo |20120101|25 |NULL |.. |NULL Foo |20120102|26 |27 |.. |NULL Bar |20120303|24 …

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