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

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

2
Page Life Expectancyはインスタンスについて何と言っていますか?
環境内のいくつかのSQL Serverインスタンスに監視ソフトウェアをインストールしました。ボトルネックを見つけて、パフォーマンスの問題をいくつか修正しようとしています。一部のサーバーでより多くのメモリが必要かどうかを確認したい。 1つのカウンター、ページの平均余命に興味があります。それはすべてのマシンで異なって見えます。一部のインスタンスで頻繁に変更されるのはなぜですか?それはどういう意味ですか? いくつかの異なるマシンで収集された先週のデータを見てください。各インスタンスについて何が言えますか? 頻繁に使用される本番インスタンス(1): 適度に使用されている実稼働インスタンス(2) まれに使用されるテストインスタンス(3) 頻繁に使用される本番インスタンス(4) 中程度に使用されたテストインスタンス(5) 頻繁に使用されるデータウェアハウス(6) 編集:これらのすべてのサーバーに対してSELECT @@ VERSIONの出力を追加します: Instance 1: Microsoft SQL Server 2008 R2 (SP1) - 10.50.2500.0 (X64) Jun 17 2011 00:54:03 Copyright (c) Microsoft Corporation Standard Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) (Hypervisor) Instance 2: Microsoft SQL …

1
フェールオーバークラスターがない環境でのWindows Update後のAlwaysOn可用性グループエラー
SQL Serverサービスが今朝停止しており、一部のWebサイトが停止しました。Windowsイベントビューアを確認したところ、次のエラーが発生しました。 アップグレードステップ 'SSIS_hotfix_install.sql'でエラー942、状態4、重大度25が発生したため、データベース 'master'のスクリプトレベルのアップグレードに失敗しました マスターデータベースを回復できません。SQL Serverを実行できません。完全バックアップからマスターを復元、修復、または再構築します。masterデータベースを再構築する方法の詳細については、SQL Server Books Onlineを参照してください。 私が最初に行ったのは、Googleにエラーを報告することでした。私は最終的に正確な問題とその修正を含むフォーラムエントリを見つけました(私が解決策を探しているブログエントリでも)。この問題はAlwaysOn可用性グループと関係があり、修正には次のことが必要です。 トレースフラグ902でSQL Serverサービスを開始します。 ネットスタートMSSQL $ InstanceName / T902 SQL Server Management Studioを開き、可用性グループに移動して、可用性データベースからSSISDBを削除します 新しいクエリを開き、\ Program Files \ Microsoft SQL Server \ MSSQL11.MSSQL $ InstanceName \ MSSQLの下のインストールフォルダーにあるSSIS_hotfix_install.sqlスクリプトを実行します。 SQL Serverサービスを停止します。 ネットストップMSSQL $ InstanceName SQL Server構成マネージャーからSQL Serverサービスを開始する SSISDBを可用性グループに戻す ただし、「AlwaysOn高可用性」フォルダーを展開しようとすると次のエラーが発生したため、手順2を完了できませんでした。 このインスタンスで可用性グループを作成する前に、サーバーインスタンス 'InstanceName'の「AlwaysOn機能を有効にする必要があります。 次に、指示に従って「SQL Server構成マネージャー」と「AlwaysOn高可用性」タブに移動し、機能をオンにします。今回は機能がグレー表示され、コンピューターノードがフェールオーバークラスター内にないことを示すメッセージが表示されました。 私の質問は: …

1
T-SQL-オプション(FAST x)およびトレースフラグ8722
私は長い間検索してきましたが、それでも私の問題に対する答えが見つかりません。 私たちのDynamics AXは、クエリヒントOPTION(FAST x)でクエリを生成しています。これにより、不適切な実行プランが使用される場合があります。開発者は、それはデフォルトであり、変更するのが難しいと言います(潜在的にすべてのフォームで修正する必要があります)。 したがって、トレースフラグを使用してこれらのヒントを上書きする方法を探していました。SQL Serverに一部のクエリヒント、特にOPTION句のヒントを無視させると主張されている素敵なトレースフラグ8722を見つけました。 ただし、これは私の場合は機能しません。トレースフラグ8602(インデックスヒントを無効にする)も有効にしようとしましたが、クエリはまだFAST xヒントを使用して実行されています(実際にOPTION句を削除する場合よりもはるかに遅くなります)。 プランキャッシュもクリアしようとしましたが、役に立ちませんでした。 何か案は?何か不足していますか? PS私はトレースフラグをグローバルに有効にしました。これはSQL Server 2012 Developerエディションです


1
サービスアカウントはデータベースメールを使用するためにどのような権限が必要ですか?
管理されたサービスアカウントでSQL Server 2012インスタンスを実行しています。1つのアカウントでデータベースメールを構成し、テストメールを送信しようとしていますが、サーバーのイベントログにエラーが表示されます。 データベースエンジンインスタンス= MYINSTANCE;メールPID = 2132;エラーメッセージ:データベースの更新に失敗しました。理由:EXECUTE権限がオブジェクト 'sysmail_logmailevent_sp'、データベース 'msdb'、スキーマ 'dbo'で拒否されました。 データベースエンジンインスタンス= MYINSTANCE;メールPID = 2212; 例外の種類:Microsoft.SqlServer.Management.SqlIMail.Server.Common.BaseExceptionメッセージ:データベースの読み取りに失敗しました。理由:EXECUTE権限がオブジェクト 'sp_readrequest'、データベース 'msdb'、スキーマ 'dbo'で拒否されました。データ:System.Collections.ListDictionaryInternal TargetSite:Microsoft.SqlServer.Management.SqlIMail.Server.Objects.QueueItem GetQueueItemFromCommand(System.Data.SqlClient.SqlCommand)HelpLink:NULL Source:DatabaseMailEngine SQL Serverプロセスを実行しているアカウントをsysadminにすると、このエラーはなくなり、メールは正常に送信されます。ただし、私が行ったすべての調査では、このアカウントDatabaseMailUserRoleにmsdbデータベースでの役割を与えるだけで十分であることが示唆されています。これを実行しても、同じエラーが発生します。 BOLを調べましたが何も見つかりませんでした。

2
SQL ServerエージェントでのPowershellスクリプトの実行エラー
SQL Serverエージェント(SQL Server 2012 Enterpriseの実行)を介して実行されるSQLジョブがあります。ジョブの最後のステップは、ネットワーク共有にあるアプリケーションを実行することです。残念ながら、アプリケーションが入っているフォルダーの名前(フォルダーはバージョン番号です)がわからないので、PowerShellを使用して検索します。 set-location "\\server\companydocuments\MyApp\Application Files\" $name = Get-ChildItem | sort name -desc | select -f 1 | select name cd $name.name & ".\Application.exe" SQL ServerでPowerShellウィンドウを開くと、正常に動作します。これをSQL Serverエージェントで実行すると、次のエラーが発生します。 A job step received an error at line 1 in a PowerShell script. The corresponding line is 'set-location "\\server\companydocuments\MyApp\Application Files\'" アクセス許可の問題かもしれないと思ったので、資格情報(運用サーバーではなくテストサーバー)でSQL …

1
拡張イベントセッションからのパラメーター値の収集
アプリケーションで使用されるステートメントをトレースするために、拡張イベントを使用しています。必要な情報を収集するセッションを作成しましたが、使用したパラメーターの実際の値も知りたいと思っています。 私はこのトレースを非実稼働環境で実行しており、トレースによるパフォーマンスへの影響は許容されます。 すべてのクエリはHibernateから発信され、次の形式でパラメーター化されています。 SELECT a, b, c From Customer where CustomerId = @P0 これは私のセッション設定です。 CREATE EVENT SESSION [TracingForStatements] ON SERVER ADD EVENT sqlserver.sp_statement_completed ( ACTION ( sqlserver.session_id, package0.collect_system_time, sqlserver.transaction_id, package0.event_sequence ) WHERE ( sqlserver.database_id=555 ) ) ADD TARGET package0.ring_buffer(SET max_memory= 128000) WITH (EVENT_RETENTION_MODE = NO_EVENT_LOSS, MAX_DISPATCH_LATENCY = 1 SECONDS) キャプチャされたステートメントで使用されたパラメーターの実際の値をキャプチャするにはどうすればよいですか?出来ますか? …

1
変更の追跡の内部はSQL Server 2008から2012に変更されましたか?
切断されたデバイスと中央データベースサーバーの同期に関する問題のトラブルシューティングで、サーバーでSQL Server 2012にアップグレードした後に問題が発生しています。CHANGE_TRACKING_MIN_VALID_VERSIONは、本来よりも1大きい(または少なくともアップグレード前の値よりも)高い値を返しているようです。 簡単な例を設定する方法の例として、Arshad Aliのすばらしいウォークスルーの例を使用して作業してきました。 #1から#5までのスクリプトを実行して、SQL Server 2008環境と2012環境の両方で、Employeeテーブルの行を挿入、削除、および更新しました。 2008年、次のステートメントは0を返します。 SELECT CHANGE_TRACKING_MIN_VALID_VERSION(OBJECT_ID('Employee')) 2012年は1を返します。 テストでさらにいくつかのスクリプト(6〜8)を使用して作業する場合は、保持期間を1分に設定して、クリーンアップアクションを強制的に実行できるようにします。私はその日出発し、どうやらそれは一晩走ったようです。 2008年のインスタンスでは、CHANGE_TRACKING_CURRENT_VERSIONとCHANGE_TRACKING_MIN_VALID_VERSIONは等しくなります(11)。2012年のインスタンスでは、CHANGE_TRACKING_MIN_VALID_VERSIONはCHANGE_TRACKING_CURRENT_VERSION(11)よりも1つ高く(12)あります。これは、データベースが長時間アイドル状態のときに同期プロセスに影響を与える可能性があります。そして、特に次のテストを実行して、同期ではなく再初期化が必要かどうかを判断する場合に、プロセスがループに巻き込まれる可能性があることを発見しました。 IF CHANGE_TRACKING_MIN_VALID_VERSION(object_id(N'dbo.Employee')) > @sync_last_received_anchor RAISERROR (N'SQL Server Change Tracking has cleaned up tracking information for table ''%s''... 他の誰かがこの行動の変化を経験しましたか?誰か説明がありますか?

2
すべてのテーブルへの読み取りアクセスを許可するデータベースロールを作成します。一部への書き込みアクセス
1000以上のテーブルを持つデータベースがあります。すべてのテーブルの読み取り専用と、2つの特定のテーブルへの書き込みアクセスを許可するロールを作成する必要があります。 私はデータベースロールをいじくり回していましたが、テーブルを追加しようとするたびに、すべて1000を手動で選択する必要がありました...これを行うより良い方法はありますか?

2
2つの関連する「多数」のテーブルがあるテーブルの結果をフラット化する方法は?
データベース内のいくつかのテーブルをより柔軟に再編成しましたが、SQLを記述してそこから意味のあるデータを抽出する方法がよくわかりません。 次の表があります(より明確な例のために多少省略しています)。 CREATE TABLE Loans( Id int, SchemaId int, LoanNumber nvarchar(100) ); CREATE TABLE SchemaFields( Id int, SchemaId int, FieldName nvarchar(255) ); CREATE TABLE LoanFields( Id int, LoanId int, SchemaFieldId int, FieldValue nvarchar(4000) ); 次のデータで: INSERT INTO Loans (Id, SchemaId, LoanNumber) VALUES (1, 1, 'ABC123'); INSERT INTO SchemaFields (Id, SchemaId, …

3
sysjobhistoryへのSQL Server 2012 catalog.executions-それらを結合する方法は?
リソースを使い果たしましたが、ssisdb.catalogテーブルをそれらを実行するジョブに結合するための確実な方法が見つかりません。いくつかのカスタムsprocを作成して、実行時間とカタログテーブルから書き込まれた行を監視しようとすると、それらを呼び出しジョブと結び付けることができれば非常に有益です。 私は、catalog.executionsテーブルをmsdb.sysjobhistoryに結合するために使用できるテーブルがあるかどうかを確認しようとしています。SSISパッケージと呼ばれるジョブを関連付け、分析の実行にデータを使用する必要があります。

2
アーカイブ目的でデータベースをデフラグ/圧縮する最良の方法
電子メールのアーカイブに使用されるSQL Serverインスタンスがあります(サードパーティのアーカイブパッケージによる)。多くの場合、ソフトウェアは新しい空のデータベースにロールオーバーされます。これまでは四半期ごとに行ってきましたが、今は毎月行う予定です。アーカイブされるデータの量は1か月あたり約15〜20 GBで、データの大部分は少数のテーブル(通常は2〜4)にのみ存在します。 新しいデータベースにロールオーバーすると、古いデータベースは完全に読み取り専用で使用されます。私がしたいことは、すべてのテーブル/インデックスが隣接しており、非常に高いFILL FACTORを持ち、データファイルの最後に多くの空スペースがない、タイトなデータファイルに最適化することです。また、このサーバーではStandard Editionを使用していますが、暗黙の制限がすべてあります(それ以外の場合は、既にデータ圧縮を使用しています)。 私が考えることができるいくつかの可能性: REBUILD / REORGANIZEインデックス、DBCC SHRINKFILE(わかりました、これは賢明なオプションではありません。DBCCSHRINKFILEは触れたものから小便を断片化するためですが、完全を期すために含めています。) 自動統計をオフにして新しいデータベースを作成します。ソースデータベースからすべてのテーブルをスクリプト化して再作成します。bcpを使用して、データをクラスターキーの順序で新しいデータベースにエクスポート/インポートします。すべてのインデックスをスクリプト化して再作成します。フルスキャンですべての統計を再計算します。 自動統計をオフにして新しいデータベースを作成します。ソースデータベースからすべてのテーブルをスクリプト化して再作成します。SSISまたはT-SQLを使用して、新しいデータベースにデータを転送します。すべてのインデックスをスクリプト化して再作成します。フルスキャンですべての統計を再計算します。 いずれの場合も、最後の手順はデータベースを読み取り専用モードに設定することです。 これを行うには他にどのような良い/良いオプションがありますか?私の懸念は、高いFILL FACTORを維持するような方法で、論理的に連続した方法でデータを移動することです。 編集: データの約75%がイメージ(LOB)列に格納されているようです。

4
あるテーブルから別のテーブルへの行の移動
アーカイブプロセスの一環として、あるデータベースから別のデータベースにレコードを移動しています。行を宛先テーブルにコピーしてから、同じ行をソーステーブルから削除します。 私の質問は、行を削除する前に最初の挿入が成功したかどうかを確認する最も効率的な方法は何ですか? 私の考えはこれですが、もっと良い方法があると思います: @num_records=select count(ID) from Source_Table where (criteria for eligible rows) insert * into Destination_Table where (criteria for eligible rows) if ((select count(ID) from Destination_Table where (criteria) )=@numrecords) delete * from Source_Table where (criteria) RAISERROR関数と組み合わせるのが良いですか?ありがとうございました!

1
SQL Serverアセンブリの最適化エラーとメモリ不足を修正するにはどうすればよいですか?
mscorsvwSQL Server 2012 Service Pack 1をインストールしてから、.NETランタイム最適化サービス()がワークステーションのすべてのメモリを消費し続けます。 使用可能なすべてのメモリを使い果たす前に、約1.6 GBのメモリを消費します。 プロセスを強制終了することはできますが、コンピュータを再起動するか、十分に待つと再び発生します。 Techdowsは、.NETネイティブイメージジェネレーター(ngen)を使用して問題を解決することを推奨しています。 コマンドプロンプトを実行して、次のようなコマンドを実行しました。 cd C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319.1 ngen executeQueuedItems のメモリ消費量はmscorsvw約20〜30 MB に低下しngen、残りのすべてのメモリを消費しました。 ngenプロセスを強制終了するまで、エラーメッセージのみが生成されました。出力の最初の数行は次のようになります。 Microsoft (R) CLR Native Image Generator - Version 4.0.30319.1 Copyright (c) Microsoft Corporation. All rights reserved. Failed to load dependency Microsoft.DataWarehouse of assembly Microsoft.SqlServer.MaintenancePlanTasks, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91 because of the following …

2
ケースvs isnull vs合体
SQL Server 2012試験のドキュメントを読んでいるだけで、次の点がわかりました。 ケースvs isnull vs合体 今、私が知っているどのようにそれぞれのいずれかを使用するが、私は知らないWHEN各1を使用します。いくつかの体を明確にしてください。ありがとう。 Ps。試験問題のタグを付けていただけませんか?

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