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

SQL Server 2014(メジャービルドバージョン12.0.xxxx)。sql-serverにもタグを付けてください。

1
SQL ServerサービスアカウントWindowsの特権と権利
私の質問は、SQL Serverプロセスごとに新しいドメインユーザーアカウントを作成する場合、各アカウントにどのようなアクセス許可を設定する必要があるかということです。または、SQL構成マネージャーが実際にこれを処理し、予期しない問題が発生しましたか? Microsoft SQL Serverをセットアップする必要が頻繁にあり、サービスを実行するアカウントの構成に関するアドバイスを誰かが提供できるかどうか疑問に思いました。IMOは、Microsoftによって漠然と文書化されていますが、彼らはあなたに正しい方向を示していますが、具体的な例を見つけることはできませんでした。 これまで見てきたことを要約すると: 単純な展開\開発環境では、インストーラーが使用する仮想アカウントのデフォルトを使用してもかまいません。 NT SERVICE\MSSQLSERVER SYSTEMアカウントの使用は避けてください。これは安全ではありません。 実稼働環境およびドメイン環境では、管理されたサービスアカウントを使用するか、サービスごとにドメインユーザーアカウント(管理者ではない)を作成することをお勧めします。伝えられるところでは、インストール時にドメインアカウントを使用すると、インストーラーが必要な権限を設定します。 既存のインストールのサービスアカウントを仮想アカウントからドメインアカウントに変更する場合、SQL Server構成マネージャーを使用して新しいサービスアカウントを設定することをお勧めします。これにより、必要な権限が設定されます。 既存のインストールのサービスアカウントをドメインアカウントに変更しようとしましたが、アカウントlog on as serviceアクセス許可を付与するまでログオンに失敗します。これは、SQL Server構成マネージャーが必要なアクセス許可を設定する部分と矛盾します。(GPOがこのローカルセキュリティポリシーの設定に干渉したかどうかはわかりませんが) Microsoftは、SQL Serverセットアップがこのページで付与する権限のリストを提供しています。 しかし、サービスを実行するために作成したユーザーがそれを手動で行う必要があるかどうか、またはSQL構成マネージャーを使用してこれらのアクセス許可を自動的に設定するかどうかは明確ではありません。 SQL Server 2014、ドメインコントローラーはWindows Server 2008 R2上にあります。

1
「対象テーブルのチェック制約またはパーティション機能で許可されていない値を許可する」でデータの切り替えが失敗する
次の場合 -- table ddl create table dbo.f_word( sentence_id int NULL, sentence_word_id int NULL, word_id int NULL, lemma_id int NULL, source_id int NULL, part_of_speech_id int NULL, person_id int NULL, gender_id int NULL, number_id int NULL, tense_id int NULL, voice_id int NULL, mood_id int NULL, case_id int NULL, degree_id int NULL, citation …

4
パスワードを使用してログインを2008R2から2014に転送するにはどうすればよいですか?
Advanced Scripting Optionsで「Tasks> Generate Scripts...スクリプトログイン」を設定してみましたが、出力で次のようになります。 /* For security reasons the login is created disabled and with a random password. */ これらのログインをパスワードでスクリプト化する簡単な方法や、ログインを2008R2インスタンスから2014インスタンスに転送する別の方法はありますか?

3
ALTER DATABASEステートメントはマルチステートメントトランザクション内では許可されません
ここからAdventureWorksベースのインメモリサンプルをダウンロードし、付属のドキュメントに記載されているすべての手順を実行しました。ただし、SQL Server Management Studioでスクリプトを実行しようとすると、次のエラーメッセージが表示されます。 ALTER DATABASEステートメントはマルチステートメントトランザクション内では許可されません エラーは9行目を指しています。 IF NOT EXISTS (SELECT * FROM sys.data_spaces WHERE type='FX') ALTER DATABASE CURRENT ADD FILEGROUP [AdventureWorks2012_mod] CONTAINS MEMORY_OPTIMIZED_DATA GO これは(多かれ少なかれ)Microsoftの公式ドキュメントであるため、私はそれが間違っていると思っていますが、それが何かを理解することはできません。

3
SQL Server 2014ではクエリが100倍遅くなり、行カウントスプール行が原因を推定していますか?
SQL Server 2012では800ミリ秒で実行され、SQL Server 2014では約170秒かかるクエリがあります。これを、Row Count Spool演算子のカーディナリティーの見積もりが悪いものに絞り込んだと思います。スプールオペレーターについて少し読んだことがありますが(例:こことここ)、まだいくつかのことを理解できません。 このクエリにRow Count Spool演算子が必要なのはなぜですか?正確さのために必要だとは思わないので、具体的にどのような最適化を提供しようとしているのですか? SQL ServerがRow Count Spool演算子への結合がすべての行を削除すると推定するのはなぜですか? これはSQL Server 2014のバグですか?もしそうなら、私はConnectにファイルします。しかし、私は最初により深い理解をお願いします。 注:LEFT JOINSQL Server 2012とSQL Server 2014の両方で許容可能なパフォーマンスを実現するために、クエリをとして書き換えるか、テーブルにインデックスを追加できます。この質問は、この特定のクエリを理解し、詳細に計画することに関するもので、詳細については説明しません。クエリの言い方を変えるには 遅いクエリ 完全なテストスクリプトについては、このPastebinを参照してください。これが私が見ている特定のテストクエリです: -- Prune any existing customers from the set of potential new customers -- This query is much slower than expected in SQL Server 2014 SELECT …

3
BULK INSERTステートメントのパフォーマンスをどのように調査しますか?
私は主にEntity Framework ORMを使用する.NET開発者です。ただし、ORMの使用に失敗したくないので、データレイヤー(データベース)内で何が起こるかを理解しようとしています。基本的に、開発中にプロファイラを起動し、クエリの観点からコードの一部が生成するものを確認します。 非常に複雑なもの(ORMが注意深く書かれていなければ、かなり単純なLINQステートメントからでもひどいクエリを生成する可能性があります)や重いもの(持続時間、CPU、ページの読み取り)を見つけた場合は、それをSSMSで受け取り、その実行計画を確認します。 私のデータベースの知識レベルでは問題なく動作します。ただし、BULK INSERTはSHOWPLANを生成しないように見えるため、特別な生物のようです。 非常に単純な例を示します。 テーブル定義 CREATE TABLE dbo.ImportingSystemFileLoadInfo ( ImportingSystemFileLoadInfoId INT NOT NULL IDENTITY(1, 1) CONSTRAINT PK_ImportingSystemFileLoadInfo PRIMARY KEY CLUSTERED, EnvironmentId INT NOT NULL CONSTRAINT FK_ImportingSystemFileLoadInfo REFERENCES dbo.Environment, ImportingSystemId INT NOT NULL CONSTRAINT FK_ImportingSystemFileLoadInfo_ImportingSystem REFERENCES dbo.ImportingSystem, FileName NVARCHAR(64) NOT NULL, FileImportTime DATETIME2 NOT NULL, CONSTRAINT UQ_ImportingSystemImportInfo_EnvXIs_TableName UNIQUE …

1
シーク述語と述語の違い
SQL Server 2014 Enterpriseにあるクエリのパフォーマンスを調整しようとしています。 私はSQL Sentryのプランエクスプローラで、実際のクエリプランを開いていて、私はそれがいることを一つのノード上で見ることができる述語をシークしても述語 Seek PredicateとPredicateの違いは何ですか? 注:このノードには多くの問題(たとえば、推定行と実際の行、残りのIO)があることがわかりますが、質問はそれとは関係ありません。

4
ネットワークバックアップの代替
私たちの環境では、Always On可用性グループにあるサーバーとスタンドアロンのサーバーがあります。 通常はネットワーク共有にバックアップしますが、最近、データベースが大きくなるにつれて、かかる時間が長くなり、ネットワーク全体の速度が低下することがわかりました。 Ola hallengrenのスクリプトは、圧縮とバックアップファイルの分割に使用されています。私は毎日の「完全」バックアップのみを実行しています。バックアップは、ネットワーク共有EMC isilonドライブに送られます。 EMC DD Boostには満足できません。唯一の代替策は、ローカルバックアップを実行してから、同じネットワーク共有にコピーすることです。 上記以外の効率的な方法はありますか?

1
N'Șc 'は、Latin1_General_CI_AS照合を使用してN'C'の重複キーを検討しました
NVARCHAR(50)列を含む一意のキーを持つテーブルがあります(正しいかどうかはわかりますが、あります)。そのため、挿入しようとすると、ȘcまたはC(挿入の順序は関係ありません)、照合の問題により2番目の挿入で中断します。ここにエラーがあります: (1行が影響を受けました)メッセージ2601、レベル14、状態1、行16一意のインデックス 'IX_TestT'を持つオブジェクト 'dbo.testT'に重複するキー行を挿入できません。重複するキーの値は(C)です。 返品を選択: データベースのデフォルトの照合はLatin1_General_CI_ASです。既存の構造をあまり変更せずに、その解決方法をしばらく探しましたが、機能する方法を見つけることができませんでした。さまざまな照合順序と組み合わせを試しましたが、すべて失敗します。まだ展開されていないキャラクターの展開などについて(こことここ)を読んでください。これは、問題を再現するために使用しているサンプルコードです。自由に変更し、これを解決するのに役立つと思われるものをお勧めします。 CREATE TABLE testT ( [Default_Collation] [NVARCHAR] (50) COLLATE DATABASE_DEFAULT, [Latin1_General_CI_AS] [NVARCHAR] (50) COLLATE Latin1_General_CI_AS, [Latin1_General_CI_AI] [NVARCHAR] (50) COLLATE Latin1_General_CI_AI, [SQL_Collation] [NVARCHAR] (50) COLLATE SQL_Latin1_General_CP1_CI_AS); CREATE UNIQUE CLUSTERED INDEX [IX_TestT] ON [dbo].[testT] ([Default_Collation]) ON [PRIMARY] GO INSERT INTO testT SELECT N'Șc', --COLLATE Latin1_General_CI_AS N'Șc', --COLLATE …

1
SQLServer Upgrade Advisor 2014がハングする
SQL Server 2008サーバーに対してSQL Server Upgrade Advisor 2014を実行しようとしています。 2008サーバーに接続するとすべてが正常に見え、分析するデータベースを選択できます。 しかし、起動すると、何もせずに永久に実行されます(ステップルールの分析:0/112のままです)。 何が起こって、どうすれば修正できますか? SQL Server 2008と2014はどちらもExpressバージョンであり、私のラップトップにインストールされています。残念ながら、これはアップグレードアドバイザーを実行するために私が見つけた唯一の方法です(実際のprod / devデータベースで実行するには制限が多すぎます)。 SQL 2008インスタンスには、必要に応じてSP3が適用されます。 Microsoft SQL Server 2008 (SP3) - 10.0.5500.0 (X64) Sep 21 2011 22:45:45 Copyright (c) 1988-2008 Microsoft Corporation Express Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: ) アドバイザがフリーズすると、4つのスリープクエリが表示されます(アクティブなクエリはありません)。 SELECT name, cmptlevel FROM …

3
SQL Serverのバージョンに応じて、RAISERRORまたはTHROWを選択することはできますか?
これが私のコードです: BEGIN TRY INSERT INTO TABLE (F1,F2,F3) VALUES ('1','2','3') END TRY BEGIN CATCH ;THROW END CATCH SQL 2008が搭載されたマシンで実行しない限り、うまく機能します。CATCHブロックでSQLバージョンをチェックし、それが2012以上の場合はTHROWを実行し、2008の場合はRAISERRORを実行します。構文エラー、それが可能かどうか疑問に思っています。このような単純なものでさえ、私にはうまくいきません。 BEGIN CATCH IF ((SELECT SERVERPROPERTY('productversion')) >= 11) ;THROW END CATCH 任意のアドバイスをいただければ幸いです。

1
このシナリオではどのインデックスが使用されますか?
SQL Server 2014 Standard Edition 特定の都市を発着する特定の月のフライト数を調べる必要があります。例えば select count(*) from flights where flightTo_AirportCode = 'aaaa' and flightFrom_Airportcode = 'bbbb' and flightdate < '2016-04-01' and flightdate > '2016-02-28' ; テーブルスキーマは次のとおりです。 インデックスmodelAまたはインデックスmodelB(下記)が望ましいかどうかを推定しようとしています(インデックスの作成には何時間もかかり、ディスクスペースでは一度に1つしか存在できないため、跳躍する前に調べます)。 私の経験では、どちらのインデックスでも十分です。私は正しいですか? create index [modelA] on flights (flightTo_AirportCode, flightFrom_AirportCode, flightDate) create index [modelB] on flights (flightDate, flightTo_AirportCode, flightFrom_AirportCode) (または、より良い、これに取り組むために使用できるバイナリインデックスまたは高度なメカニズムはありますか?) CREATE TABLE [dbo].[flights]( …

2
SQL Serverのインデックス付きビュー
私はテーブルとそれにインデックス付きビューを持っています Create table mytable1 (ID int identity(1,1), Name nvarchar(100)) Create table mytable2 (ID int identity(1,1), Name nvarchar(100)) Create view myview with schemabinding as select a.name, b.name from mytable1 a join mytable2 b on a.Id = b.Id 次のクエリを実行すると select a.name, b.name from mytable1 a join mytable2 b on a.Id = b.Id …

1
このwhileループで明示的なトランザクションが必要ですか?
SQL Server 2014: 非常に大きな(1億行)テーブルがあり、その上のいくつかのフィールドを更新する必要があります。 ログシッピングなどの場合も、一口サイズのトランザクションを維持する必要があります。 以下を少し実行してからクエリをキャンセル/終了すると、これまでに行われた作業はすべてコミットされますか、いつでもキャンセルできるように明示的なBEGIN TRANSACTION / END TRANSACTIONステートメントを追加する必要がありますか? DECLARE @CHUNK_SIZE int SET @CHUNK_SIZE = 10000 UPDATE TOP(@CHUNK_SIZE) [huge-table] set deleted = 0, deletedDate = '2000-01-01' where deleted is null or deletedDate is null WHILE @@ROWCOUNT > 0 BEGIN UPDATE TOP(@CHUNK_SIZE) [huge-table] set deleted = 0, deletedDate = '2000-01-01' …

1
HADR_SYNC_COMMITの奇妙なケースが待機する
私たちはHADR_SYNC_COMMIT、私たちの環境での待機の興味深いパターンに気づいています。3つのレプリカがあります。1つのプライマリ、1つの同期セカンダリ、および1つの非同期セカンダリがデータセンターにあり、さらに3つのASYNCレプリカを別のデータセンター(約2400マイル離れた場所)に追加しました。 それ以来、HADR_SYNC_COMMIT待機の大幅な増加に気づき始めました。アクティブなセッションを見るCOMMIT TRANSACTIONと、SYNCレプリカで待機しているクエリがたくさんあります スクリーンショットから、HADR_SYNC_COMMIT6月29日に待機が急増していることがはっきりとわかります。最終的に、7月1日の正午に、リモートデータセンターの3つの非同期レプリカのうち「2つ」をドロップしました。これにより、待ち時間も大幅に減少しました。 これまでに確認したこと–リモートレプリカのログ送信キュー、やり直しキュー、最終強化時間、最終コミット時間。営業時間中に小さなトランザクションのバーストが連続しているため、送信キューは特定のタイムスタンプ(60KBから1MBの間)でかなり小さくなっています。リモートレプリカはほぼ同期しています。レプリカ上の個々のlsnの最終コミット時刻と最終硬化時刻の差はほとんどありません。 ネットワークパイプは10Gであり、送信バッファーサイズを256 MBから2 GBに変更しました。これは、ネットワークがパケットをドロップして再送信しているという前提の下で行われました。どちらの方法でもあまり役に立たないようです。 では、ASYNCレプリカはHADR_SYNC_COMMIT待機とどう関係しているのでしょうか。SYNCレプリカはこの待機タイプに単独で依存するべきではありません。ここで何が欠けていますか?

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