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

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

3
TempDBのパーティションが破損していると、DBCC CHECKDBで問題が報告されないのはなぜですか。
SQL Serverの1つが最近次のエラーを報告しました: DATE/TIME: 2/25/2013 9:15:14 PM DESCRIPTION: No catalog entry found for partition ID 9079262474267394048 in database 2. The metadata is inconsistent. Run DBCC CHECKDB to check for a metadata corruption. 15分以内にサーバーに接続して実行しました。 SELECT name FROM sys.databases WHERE database_id = 2; これは「tempdb」を返しました。次に実行しました: DBCC CHECKDB ('tempdb') WITH NO_INFOMSGS, TABLERESULTS; 結果は返されず、影響を受けるデータベースに問題がないことを示しています。 データベースが破損すると、上記のエラーメッセージが表示されDBCC CHECKDB、問題が報告されないのはなぜですか。ページのチェックサム計算が失敗し、そのページを参照しているオブジェクトを削除できないと疑われるページがマークされた場合、私は推測しますが、私は間違っているはずです。 …

3
XMLクエリの質問
次のSQL XMLから "DATE"値を取得するSQLクエリを生成しようとしています。 私はこのようなことを試しましたが、概念を理解しているとは思いません。 select xConfig.value('(/SearchjobConfig/QueryString/SearchCriteria/ExpressionSet/SimpleAttributeExpression) [1]','nvarchar(max)') from Job テキストとしてのXMLは次のとおりです。 <SearchJobConfig> <QueryID>1072</QueryID> <QueryString> <SearchCriteria name="Search query" > <ExpressionSet logicalOperator="AND"> <SimpleAttributeExpression displayName="Date" npmPropertyId="4" searchOperation="GREATER_EQUAL" dataType="string" caseSensitive="false">2019-06-01T04:00:00</SimpleAttributeExpression> <SimpleAttributeExpression displayName="Date" npmPropertyId="4" searchOperation="LESS_EQUAL" dataType="string" caseSensitive="false">2019-06-13T03:59:59</SimpleAttributeExpression> <SimpleAttributeExpression displayName="Class" npmPropertyId="1056" searchOperation="EQUALS" dataType="int32" caseSensitive="false">65</SimpleAttributeExpression> </ExpressionSet> </SearchCriteria> </QueryString> </SearchJobConfig> 予想される出力は日付になります: 2019-06-01T04:00:00 2019-06-13T03:59:59 そして、同じ行で結果を得るには何が必要でしょうか。例: date_val_start date_val_end 2019-06-01T04:00:00 2019-06-13T03:59:59 SQL …

1
ストアドプロシージャを更新するには「ダウンタイム」が必要ですか?(「定義変更」エラーによる)
ストアドプロシージャの更新は、ユーザーがシステムを積極的に使用しているときにできることだといつも思っていました。 しかし、私は現在、ストアドプロシージャの更新をテストしており、sprocへの長時間実行中の呼び出しが実行されている間に(呼び出しから4分以上)、sprocを更新しました。(別のウィンドウで別のクエリプランを試すことを計画していました。) 私が長期的なものに戻ったとき、私はこのエラーがありました: The definition of object 'MySprocName' has changed since it was compiled. このエラーは、sprocの定義が更新されると、アクティブに実行されているsprocが失敗することを示しているようです。(sprocが実行を開始すると、定義への変更にもかかわらず、残りの実行に対してその計画を使用すると思いました。) これは本当ですか?sprocの定義を更新するためにダウンタイムが必要ですか?

2
SQL Server 2012 SP3でのメモリ不足の問題
SQL ServerのOOMエラーが定期的に発生しました。SQLServerが自動的にシャットダウンし、常に夜間に発生し、誰も使用しておらず、SQLエージェントジョブも実行されていませんでした。 ここに典型的なエラーがあります: 2017年8月17日19:31:17、spid100、不明、このクエリを実行するには、リソースプール '内部'にシステムメモリが不足しています。 2017年8月17日19:31:17、spid100、不明、エラー:701重要度:17状態:123。 08/17/2017 19:31:17、spid112、Unknown、Error:18056 Severity:20 State:29.(Params :)。フォーマット中にエラーが発生したため、エラーは簡略モードで出力されます。ETW通知などのトレースはスキップされます。 サーバー情報は次のとおりです。 10GB MIN SQLサーバーメモリ 21GB MAX SQLサーバーメモリ サーバー上に4つのDBのみ サイズはそれぞれ1〜2 GBです Tempdbのサイズが1 GBを超えることはありません(10 GBに自動拡張するように設定) インデックスはすべて低フラグであり、統計が更新されます バージョン: Microsoft SQL Server 2012 (SP3) (KB3072779) - 11.0.6020.0 (X64) Oct 20 2015 15:36:27 Copyright (c) Microsoft Corporation Standard Edition (64-bit) on Windows NT 6.3 …

4
SSRSと管理されたサービスアカウント-構成できませんか?
管理されたサービスアカウントを使用するようにReporting Servicesを構成しようとしています。環境は次のとおりです。 サーバー:Windows 2008 R2 SP1 Reporting Services:SQL Server 2012(バージョン11.0.6567.0) 現在、SSRSはドメインサービスアカウントとして実行されていますが、MSAとして実行するように変更したいと考えています。SQL Serverインスタンスとエージェントの両方が、MSAを使用するように正常に変更されました。 Reporting Services構成マネージャーを介してサービスアカウントをMSAに変更しようとすると、エラーが表示されます。 Microsoft.ReportingServices.WmiProvider.WMIProviderException:アカウント名が無効です。domain \ aliasの形式でアカウントを指定します。 ---> System.Runtime.InteropServices.COMException(0x8004021D):HRESULTからの例外:0x8004021D ---内部例外スタックトレースの終了--- at Microsoft.ReportingServices.WmiProvider.RSWmiAdmin.ThrowOnError(ManagementBaseObject mo)at Microsoft.ReportingServices .WmiProvider.RSWmiAdmin.SetWindowsServiceIdentity(String accountName、SecureString password、Boolean useBuiltinAccount)at ReportServicesConfigUI.WMIProvider.RSReportServerAdmin.SetWindowsServiceIdentity(String accountName、SecureString password、Boolean useBuiltinAccount) 私の質問は簡単です: 管理されたサービスアカウントを使用するようにSSRSサービスアカウントを変更した人はいますか?もしそうなら、どうですか?!

5
ウィンドウ関数を使用したサブクエリの最適化
私のパフォーマンスチューニングのスキルを十分に感じるように見えることはありませんようがあれば、私はいつも疑問に思うより多くの私はいくつかのクエリに対して実行することができ、最適化が。この質問が関係する状況は、サブクエリ内にネストされたウィンドウ化MAX関数です。 私が調べているデータは、より大きなセットのさまざまなグループでの一連のトランザクションです。重要なフィールドは4つあります。トランザクションの一意のID、トランザクションのバッチのグループID、およびそれぞれの一意のトランザクションまたはトランザクションのグループに関連付けられた日付です。ほとんどの場合、グループの日付はバッチの最大一意のトランザクションの日付と一致しますが、システムで手動調整が行われ、グループのトランザクションの日付がキャプチャされた後に一意の日付の操作が発生する場合があります。この手動編集では、グループの日付は意図的に調整されません。 このクエリで特定するのは、一意の日付がグループの日付の後にあるレコードです。次のサンプルクエリは、私のシナリオにほぼ相当するものを構築し、SELECTステートメントは探しているレコードを返しますが、このソリューションに最も効率的な方法でアプローチしていますか?これは、ファクトテーブルの読み込み中にレコードが上位9桁の数を数えるため、実行に時間がかかりますが、ほとんどの場合、サブクエリを無視することで、ここにもっと良いアプローチがあるかどうか疑問に思います。インデックスは既に用意されていると確信しているので、インデックスについては心配していません。私が探しているのは、同じことを実現するが、さらに効率的な代替のクエリアプローチです。どんなフィードバックでも大歓迎です。 CREATE TABLE #Example ( UniqueID INT IDENTITY(1,1) , GroupID INT , GroupDate DATETIME , UniqueDate DATETIME ) CREATE CLUSTERED INDEX [CX_1] ON [#Example] ( [UniqueID] ASC ) SET NOCOUNT ON --Populate some test data DECLARE @i INT = 0, @j INT = 5, @UniqueDate DATETIME, @GroupDate DATETIME …

1
自動更新統計が統計を更新しない
使用していますSQL SERVER 2012私は私の持っているAuto Update Stats ONを自分のデータベースに。 下記のリンクから、自動更新の統計情報がSQRT(1000 * Table rows)テーブルの行が変更されるたびに発生することがわかりました。 https://blogs.msdn.microsoft.com/srgolla/2012/09/04/sql-server-statistics-explained/ 1000レコードのテーブルを作成しました SELECT TOP 500 Row_number()OVER (ORDER BY (SELECT NULL)) rn, name INTO stst FROM sys.objects 統計の作成 CREATE STATISTICS rn ON stst (rn) CREATE STATISTICS name ON stst (name) 作成した統計の確認 DBCC show_statistics('stst', rn) -- Rows 500 DBCC show_statistics('stst', name) -- …


2
Seek述語のスカラー演算子
SQL Server 2012で実際のクエリを簡略化したバージョンを以下に示します。コンテナテーブルからデータを選択するときに、シーク述語にスカラー演算子があります。 このシーク述語でのスカラー演算子の目的は何ですか? CREATE TABLE #EligibleOrders (OrderID INT PRIMARY KEY, StatusCD CHAR(3), CreatedOnDate DATETIME ) --insert logic into #EligibleOrders --Final Query SELECT T2.OrderID ,olic.LineItemID, SUM(c.quantity) AS ShippedQty, COUNT(DISTINCT c.ContainerID) AS ShippedCases FROM #EligibleOrders T2 INNER JOIN dbo.OrderLineItemContainers (NOLOCK) AS olic ON olic.OrderID = T2.OrderID INNER JOIN dbo.Containers (NOLOCK) AS …

2
エラー:「1つ以上のエンティティがそれを使用して署名または暗号化されているため、証明書を削除できません。」
データベースから削除したい証明書があります。 コマンドを発行した場合 DROP CERTIFICATE <FooCert> エラーが出る The certificate cannot be dropped because one or more entities are either signed or encrypted using it Jason Strateによれば、証明書によって何が署名されているかを知ることができるはずです。 次のクエリは0行を返します。 SELECT OBJECT_SCHEMA_NAME(co.major_id) + '.' + OBJECT_NAME(co.major_id) FROM sys.certificates c INNER JOIN sys.crypt_properties co ON c.thumbprint = co.thumbprint WHERE co.crypt_type_desc = 'SIGNATURE BY CERTIFICATE' AND …

2
[0-9]は数字、[az]は文字のように、句読点に相当するT-SQLはありますか?
句読点を含む列から値をプルできるようにする[0-9]および[a-z]パターンに相当するT-SQLはありますか? 例えば: Create Table #Test ( Value VarChar(10) ) Insert Into #Test Values ('123a'), ('456b'), ('12ABC'),('AB!23'),('C?D789') Select * From #Test Where Value like '[0-9][0-9][0-9][a-z]' これは、最初の3文字が0から9までの数字で、最後の文字がaからzまでの文字である値を返すため、123aおよびなど456bの値を返しますが、の値は返しません12ABC。 句読点に相当するもの[0-9]が数字や[a-z]文字にあるかどうか知りたいので、返さAB!23れC?D789ますか? 正規表現を使用できる場合^[a-zA-Z0-9]*$、文字列内の英数字に一致する表現を使用する可能性があります。 Where Value like '^[a-zA-Z0-9]*$' これに相当するSQLはありますか? RegExで実行できるこの種のことは知っていますが、T-SQLでそれが必要です。このサーバーにカスタムアセンブリをロードできないため、正規表現を使用できません。 実際の列はvarchar(200)です。照合順序は、Latin1_General_CI_ASです。SQL Server 2012 Standard Editionを使用しています。

1
ハイパースレッディングを無効にする必要がありますか
背景はかなり密接にプロセッサの活動を監視するために、SQL歩哨を使用して私を持っていた私は最近、最近、いくつかのかなり高いCXPACKETの待ち時間に見てきました。 結果として気づいたことの1つは、コンテキストの切り替えに大きなスパイクがあることです。以下は5分のサンプルですが、このパターンは1日を通して非常に一般的です。 あなたが見ることができるように、それはかなり定期的に急上昇します。これについての私の理解は、これがCPUのプレッシャーの結果であると信じるようになります。しかし、その間、かろうじて60%を超えます。 いくつかの調査の結果、これはハイパースレッディングの結果として発生していると私に思わせました。ハイパースレッディングの危険のいくつかを以前に読んだことは知っています。しかし、それはかなり前に書かれました。 長い話を短くします。ハイパースレッディングは、コンテキストの切り替えにおけるこのスパイクの原因である可能性がありますか?コンテキストの切り替えが並列クエリに悪影響を及ぼしている可能性はありますか?私の環境ではハイパースレッディングを無効にする必要がありますか? 更新この特定のことが私の環境で起こっていますが、その核心にある質問はより普遍的です。高レベルのコンテキスト切り替えは、並列クエリにどの程度影響がありますか?ハイパースレッディングはこの種の問題を引き起こす可能性がありますか? 最終的に私がインターネットで見つけたもののほとんどは、ハイパースレッディングとSQL Serverは良い友達ではないことを示唆していますが、ほとんどの場合、その情報は非常に古いものです。 私のシステム構成に関する質問がたくさんあったので、それらを除外できるようにここで取り上げます。OSとbioの両方のレベルでパフォーマンスの電源設定があります。Maxdopは8に設定され、並列処理のコストしきい値は25です。32の論理コアと16の物理コアがあります。また、これは大部分がデータウェアハウスの負荷シナリオです。

3
インデックスに対してDateAdd()によって制約されたビューの1行の推定を改善する方法
Microsoft SQL Server 2012(SP3)(KB3072779)-11.0.6020.0(X64)の使用。 与えられたテーブルとインデックス: create table [User].[Session] ( SessionId int identity(1, 1) not null primary key CreatedUtc datetime2(7) not null default sysutcdatetime()) ) create nonclustered index [IX_User_Session_CreatedUtc] on [User].[Session]([CreatedUtc]) include (SessionId) 次の各クエリの実際の行は310万です。推定行はコメントとして表示されます。 これらのクエリがView内の別のクエリをフィードすると、1行の推定値のため、オプティマイザはループ結合を選択します。 親クエリの結合ヒントを上書きしたり、SPに頼ったりしないように、この基本レベルでの見積もりを改善するにはどうすればよいですか ハードコードされた日付を使用するとうまくいきます: select distinct SessionId from [User].Session -- 2.9M (great) where CreatedUtc > '04/08/2015' -- but …

4
完了する前にストアドプロシージャから応答を取得する方法
終了する前に、ストアドプロシージャから部分的な結果(単純な選択として)を返す必要があります。 それは可能ですか? はいの場合、それを行う方法は? そうでない場合、回避策はありますか? 編集:私は手順のいくつかの部分を持っています。最初の部分では、いくつかの文字列を計算します。追加の操作を行うために、手順の後半でそれらを使用します。問題は、呼び出し元が文字列をできるだけ早く必要とすることです。そのため、その文字列を計算してそれを(どういうわけか、たとえばselectから)返し、それから作業を続ける必要があります。発信者は、貴重な文字列をはるかに迅速に取得します。 呼び出し元はWebサービスです。

1
値で均等に分散されたグループに分割されたデータを選択します
グループ内の値の合計が可能な限り均等に分散されているテーブルからデータを4つのグループに選択したいと思います。私はそれを十分に明確に説明していないと確信しているので、例を挙げようと思います。 ここでは、NTILE(4)を使用して4つのグループを作成します。 SELECT Time, NTILE(4) OVER (ORDER BY Time DESC) AS N FROM TableX Time - N ------------- 10 - 1 9 - 2 8 - 3 7 - 4 6 - 1 5 - 2 4 - 3 3 - 4 2 - 1 1 - 2 上記のクエリと結果では、他の列は簡潔にするために省略されています。 したがって、次のようにグループを表示することもできます。 …

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