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

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

2
SQL Server 2016では、Always EncryptedとTransparent Data Encryptionの違いは何ですか?
これを書いている間、SQL Server 2016の公式リリースを待っているので、「常に暗号化された」機能の有用性を探ることができます。 Always EncryptedとSQL Server 2016で現在利用可能なTransparent Data Encryptionの具体的な違いを知りたいので、将来のプロジェクトのために正しい判断を下すことができます。

3
単一のストアドプロシージャの実行権限をどのように付与しますか?
通常、ストアドプロシージャを作成するときは、並べ替えのテンプレートとして次を使用します。 Create procedure <procedurename> <@param1 <type>, @param2 <type>, etc..> as begin <procedure> end 私がそこにいる間に、そのストアドプロシージャのみに実行アクセス許可を付与する方法はありますか? たとえば... Grant execute [User_Execute] ...しかし、このストアドプロシージャのみですか? 他の同様の質問を見ましたが、それらはすべて、1つだけでなくすべてのストアドプロシージャを参照しているようですcreate procedure。また、スクリプト内で権限を指定できるものも見ていません。特定のストアドプロシージャにGUIを使用せずにアクセス許可を設定する方法についての回答も歓迎します。 編集 一番上の答えは確かに正しい方向に私を指摘しました、これは本質的に私が探していたものであり、コマンドをバッチ処理することは考えていませんでした。とにかく、私はそれがかなり滑らかだと思います。 Create procedure <procedurename> <@param1 <type>, @param2 <type>, etc..> as begin <procedure> end GO GRANT EXECUTE ON <procedurename> to <username> GO
40 sql-server 

2
DBAはSSASについて何を知る必要がありますか?
SSASのビジネスの側面をカバーする多くの資料を見てきましたが、管理と管理の重要な側面についてはあまり多くありません。 SQL Server Analysis Servicesのインスタンスを管理するという観点から、作業中のDBAは、SSASを正しく効率的に管理するためにSSASについて何を知る必要がありますか?
40 sql-server  ssas 

4
SQL Server 2008でActive Directoryグループ全体のセキュリティアクセスを割り当てるにはどうすればよいですか?
ドメイン上のすべての内部アプリケーションで統合セキュリティを使用したいと思います。残念ながら、私はこれをうまく機能させることができませんでした。特定のテーブルへの読み取り/書き込みアクセスのために、Exchange(Active Directory)グループ全体にSQL Serverのロールを割り当てたいと思います。そうすれば、誰かが雇われるたびにオペレーターを作成したり、誰かが解雇されたときにオペレーターを削除したりする必要がなくなります。これは可能ですか?これを行うにはどのような手順を実行しますか?



5
既存の違反を無視する一意の制約を追加できますか?
現在、列に重複した値があるテーブルがあります。 これらの誤った重複を削除することはできませんが、一意でない値が追加されないようにしたいと思います。 UNIQUE既存のコンプライアンスをチェックしないを作成できますか? 使用してみましNOCHECKたが、失敗しました。 この場合、ライセンス情報を「CompanyName」に関連付けるテーブルがあります 編集:同じ「CompanyName」を持つ複数の行を持つことは悪いデータですが、現時点ではそれらの重複を削除または更新することはできません。1つのアプローチはINSERT、重複に対して失敗するストアドプロシージャをsに使用させることです... SQLが独自に一意性をチェックすることが可能であれば、それが望ましいでしょう。 このデータは会社名で照会されます。少数の既存の重複について、これは複数の行が返されて表示されることを意味します...これは間違っていますが、ユースケースでは許容できます。目標は、将来それを防ぐことです。コメントから、ストアドプロシージャでこのロジックを実行する必要があるようです。

1
同じデータベースの.bakファイルと比較して、.bacpacファイルが非常に小さいのはなぜですか?
私は他のサーバーにインポートするために私のSQL Serverの2014 Expressデータベースのバックアップを行うとの間で、ファイルサイズの違いに気づいてきた.bacpacとします.bak。 同じデータベースのファイル.bacpacと比較して、.bakファイルが非常に小さいのはなぜですか? 洞察力をありがとう!

6
トップ1を追加するとパフォーマンスが劇的に低下するのはなぜですか?
私はかなり単純なクエリを持っています SELECT TOP 1 dc.DOCUMENT_ID, dc.COPIES, dc.REQUESTOR, dc.D_ID, cj.FILE_NUMBER FROM DOCUMENT_QUEUE dc JOIN CORRESPONDENCE_JOURNAL cj ON dc.DOCUMENT_ID = cj.DOCUMENT_ID WHERE dc.QUEUE_DATE <= GETDATE() AND dc.PRINT_LOCATION = 2 ORDER BY cj.FILE_NUMBER それは私に恐ろしいパフォーマンスを与えています(それが終わるのを待つことを決して気にしないような)クエリプランは次のようになります。 しかし、削除するTOP 1と、次のような計画が得られ、1〜2秒で実行されます。 以下のPKとインデックスの修正。 TOP 1クエリプランが変更されたからといって驚くことはありませんが、それによって事態がさら​​に悪化していることに少し驚いています。 注:この投稿の結果を読んで、a Row Goalなどの概念を理解しています。私が興味を持っているのは、より良いプランを使用するようにクエリを変更する方法です。現在、データを一時テーブルにダンプしてから、最初の行を取り出しています。より良い方法があるかどうか疑問に思っています。 編集事実の後にこれを読んでいる人々のために、ここにいくつかの追加情報があります。 Document_Queue-PK / CIはD_IDであり、〜5k行があります。 Correspondence_Journal-PK / CIはFILE_NUMBER、CORRESPONDENCE_IDで、行数は約140万です。 私が始めたとき、他のインデックスはありませんでした。私はCorrespondence_Journal(Document_Id、File_Number)で1つになりました

3
SQL Serverの「合計サーバーメモリ」の消費量は数か月間停滞しており、64GB以上が利用可能
SQL Server 2016 Standard Edition 64ビットが、割り当てられた合計メモリの正確に半分(128GBの64GB)で完全に制限されているように見えるという奇妙な問題に遭遇しました。 出力@@VERSIONは次のとおりです。 Microsoft SQL Server 2016(SP1-CU7-GDR)(KB4057119)-13.0.4466.4(X64)2017年12月22日11:25:00 Copyright(c)Microsoft Corporation Standard Edition(64ビット)on Windows Server 2012 R2 Datacenter 6.3(ビルド9600:)(ハイパーバイザー) 出力sys.dm_os_process_memoryは次のとおりです。 クエリを実行するsys.dm_os_performance_countersと、Target Server Memory (KB)がで131072000ありTotal Server Memory (KB)、その半分以下にあることがわかります65308016。ほとんどのシナリオでは、SQL Serverがそれ自体のメモリをさらに割り当てる必要があると判断していないため、これは正常な動作であると理解しています。 ただし、2か月以上にわたって〜64GBで「スタック」しています。この期間中に、一部のデータベースでかなりの量のメモリを消費する操作を実行し、さらに40個近くのデータベースをインスタンスに追加しました。合計292個のデータベースがあり、それぞれに4GBの256 MBの自動成長率の事前割り当て済みデータファイルと、128MBの自動成長率の2GBのログファイルがあります。毎晩12:00 AMにフルバックアップを実行し、月曜日から金曜日の午前6時から午後8時まで、15分間隔でトランザクションログのバックアップを開始します。これらのデータベースは、全体的なスループットが比較的低いですが、SQL Serverが高速化されていないため、何かがおかしいのではないかと疑っています。Target Server Memory 当然、新しいデータベースの追加、通常のクエリの実行、および実行されたメモリ集約型のETLパイプラインを通じて。 SQL Serverインスタンス自体は、12 CPU、144GBのメモリ(SQL Serverに128GB、Windows用に16GBを予約)、および15K SASドライブを備えたvSANの上にある合計4つの仮想ディスクを備えた仮想化(VMware)Windows Server 2012R2サーバーの上にあります。Windowsは、32GBのページファイルがある64GB C:ディスクに自然に配置されます。データファイルは2TBのD:ディスクに、ログファイルは2TBのL:ディスクの上に、tempdbは256GBのT:ディスクに置かれ、8x16GBのファイルは自動拡張されません。 サーバーで実行されているSQL Serverの他のインスタンスが以外にないことを確認しましたMSSQLSERVER。 このサーバーは完全にSQL Serverインスタンス専用であるため、メモリを消費する可能性のある他のアプリケーションやサービスは実行されていません。 分析にはRedGate …

2
ネストされたループで実行が遅いクエリを最適化する方法(内部結合)
TL; DR この質問は引き続き意見を得るので、ここで要約して、新参者が歴史に苦しむ必要がないようにします。 JOIN table t ON t.member = @value1 OR t.member = @value2 -- this is slow as hell JOIN table t ON t.member = COALESCE(@value1, @value2) -- this is blazing fast -- Note that here if @value1 has a value, @value2 is NULL, and vice versa これはすべての人の問題ではないかもしれませんが、ON句の感度を強調することで、正しい方向を見るのに役立ちます。いずれにせよ、元のテキストは将来の人類学者のためにここにあります: 元のテキスト …

2
列幅を変更する
列(nvarchar)の幅を増やすと、必然的にテーブルが削除されますか? 言い換えると、アクティブユーザーがいる実稼働環境で幅を変更できますか? サイズが(減少ではなく)増加している場合、これは問題にならないだろうと考えました。
39 sql-server 

3
実行計画の基本—ハッシュマッチの混乱
私は実行計画を学び始めており、ハッシュマッチが正確にどのように機能するのか、そして単純な結合でそれが使用される理由について混乱しています: select Posts.Title, Users.DisplayName From Posts JOIN Users on Posts.OwnerUserId = Users.Id OPTION (MAXDOP 1) 私が理解しているように、トップインデックススキャンの結果はハッシュ可能になり、ボトムインデックスクラスタースキャンの各行が検索されます。ハッシュテーブルが少なくともある程度機能することは理解していますが、このような例ではどの値が正確にハッシュされるかについて混乱しています。 私が理にかなっているのは、それらの間の共通フィールドであるidがハッシュされていることですが、もしそうなら、なぜ数値をハッシュするのでしょうか?

6
テストケースでシーケンシャルGUIDキーがシーケンシャルINTキーよりも高速に実行されるのはなぜですか?
求めた後、このシーケンシャルおよび非シーケンシャルGUIDを比較する質問を、私はGUID主キーを持つテーブルがで順次初期化)1上のINSERTのパフォーマンスを比較してみましたnewsequentialid()主キーがで順次初期化INTと、および2)テーブルidentity(1,1)。整数の幅が小さいため、後者の方が高速であると予想されます。また、順次GUIDよりも順次整数を生成する方が簡単だと思われます。しかし、驚いたことに、整数キーを持つテーブルでのINSERTは、シーケンシャルGUIDテーブルよりも大幅に遅くなりました。 これは、テスト実行の平均時間使用量(ミリ秒)を示します。 NEWSEQUENTIALID() 1977 IDENTITY() 2223 誰でもこれを説明できますか? 次の実験が使用されました。 SET NOCOUNT ON CREATE TABLE TestGuid2 (Id UNIQUEIDENTIFIER NOT NULL DEFAULT NEWSEQUENTIALID() PRIMARY KEY, SomeDate DATETIME, batchNumber BIGINT, FILLER CHAR(100)) CREATE TABLE TestInt (Id Int NOT NULL identity(1,1) PRIMARY KEY, SomeDate DATETIME, batchNumber BIGINT, FILLER CHAR(100)) DECLARE @BatchCounter INT = 1 DECLARE …

3
ヒープ上の非クラスター化インデックスとクラスター化インデックスのパフォーマンス
この2007年ホワイトペーパーでは、クラスター化インデックスとして構成されたテーブルと、CIと同じキー列に非クラスター化インデックスを備えたヒープとして構成されたテーブルの個々の選択/挿入/削除/更新および範囲選択ステートメントのパフォーマンスを比較しています表。 通常、クラスター化インデックスオプションは、維持する構造が1つだけであり、ブックマークの参照が不要なため、テストでのパフォーマンスが向上しました。 この論文で取り上げられていない興味深いケースの1つは、ヒープ上の非クラスター化インデックスとクラスター化インデックス上の非クラスター化インデックスの比較です。その場合、NCIリーフレベルでSQL Serverがクラスター化インデックスをトラバースする必要がなく、直接従うRIDを持っているため、ヒープのパフォーマンスがさらに向上することを期待していました。 この分野で行われた同様の正式なテストを知っている人はいますか?

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