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

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

1
フルテキスト:複数のフルテキストインデックスが作成された後、多数のFT_MASTER_MERGEがSUSPENDED状態で待機します(サーバーがハングします)
10個のデータベース、各データベースに100個の異なるスキーマ、各スキーマに10個の小さな(約50行)テーブル(合計で10K個のテーブル)があり、これらすべてにフルテキストインデックスを作成したときに、SQL Server 2014でテストを行いましたこれらすべてのデータベースのテーブルを同時に。 数分後に、SQL Serverが接続(ADMIN:.接続以外)を受け入れるために停止したことがわかりました。サーバーを再起動すると接続できますが、しばらくするとハングします。いくつかの調査の後、我々は、それがすべての作業スレッドを消費によって引き起こされることを見出し、dm_os_tasksおよびdm_os_waiting_tasksロットがあることを私たちに示したFT_MASTER_MERGEで待機SUSPENDED状態。「フルテキストはマスターマージ操作を待機しています」とグーグル検索しましたが、それに関する実際の情報は見つかりませんでした。 さまざまなフルテキストカタログ構成を試しました。DBごとに1つのカタログ、スキーマごとに1つのカタログ、インデックスごとに1つのカタログです。とにかく、サーバーはこれらすべての中断されたタスクでハングします。 待機の根本的な原因は何ですか?これをどのように修正/緩和できますか? そして、そのような大量のテーブルでフルテキストを有効にするための推奨される方法は何ですか?

1
トランザクションログを切り捨てることができません、log_reuse_wait_desc-AVAILABILITY_REPLICA
今朝、私はデータベースの1つでトランザクションログが一杯になったという警告に目覚めました。このサーバーは、常時接続のクラスターであり、トランザクションレプリケーションサブスクライバーでもあります。log_reuse_wait_descを確認したところ、logbackupが表示されました。4日前に誰かが誤ってlogbackupジョブを無効にしていたため、ログバックアップジョブを再度有効にしたところ、ログがクリアされました。午前4時だったので、その朝遅くにオフィスに行って、ログが400GBに達したときにログを鳴らそうと思いました。 午前10時-オフィスにいて、縮小する前にログの使用状況を確認したところ、約16%でした。私は驚いて、複製を示したlog_reuse_wait_descを確認しました。これがレプリケーションサブスクライバーだったため、混乱しました。次に、dbがCDCに対して有効になっていることがわかり、それが原因である可能性があるため、CDCを無効にすると、log_reuse_wait_descにAVAILABILITY_REPLICAが表示されます。 一方、ログの使用量は着実に増加しており、現在は17%です。alwaysonダッシュボードを確認し、送信済みキューとやり直しキューを確認しましたが、どちらもほぼゼロです。ログの再利用がAVAILABILITY_REPLICAと表示され、ログをクリアできない理由がわかりません。 なぜこれが起こっているのでしょうか?

2
2つの列を追加するとクエリが応答しない
2つの列を選択に追加すると、クエリが応答しません。列のタイプはですnvarchar(2000)。それは少し珍しいです。 SQL Serverのバージョンは2014です。 プライマリインデックスは1つだけです。 レコード全体はわずか1000行です。 これが以前の実行計画です(XML showplan): 後の実行計画(XML showplan): これがクエリです: select top(100) Batch_Tasks_Queue.id, btq.id, Batch_Tasks_Queue.[Parameters], -- this field btq.[Parameters] -- and this field from Batch_Tasks_Queue with(nolock) inner join Batch_Tasks_Queue btq with(nolock) on Batch_Tasks_Queue.Start_Time < btq.Start_Time and btq.Start_Time < Batch_Tasks_Queue.Finish_Time and Batch_Tasks_Queue.id <> btq.id and btq.Start_Time is not null and btq.State …

2
> =および>のカーディナリティ推定(ステップ内統計値)
SQL ServerがSQL Server 2014のwhere句の「より大きい」と「等しい」をどのように推定するかを理解しようとしています。 私がそうすれば、それがステップに到達したときのカーディナリティ推定は理解していると思います select * from charge where charge_dt >= '1999-10-13 10:47:38.550' カーディナリティの推定値は6672で、32(EQ_ROWS)+ 6624(RANGE_ROWS)+ 16(EQ_ROWS)= 6672(下のスクリーンショットのヒストグラム)として簡単に計算できます。 しかし、私がするとき select * from charge where charge_dt >= '1999-10-13 10:48:38.550' (時間を10:48に増やしたため、ステップではありません) 推定値は4844.13です。 それはどのように計算されますか?

1
スケジュールに従ってトランザクションログをバックアップおよび切り捨てる最良の方法
私はDBAではありませんが、DBAの帽子をかぶってSQL Serverインスタンスのメンテナンスプランをセットアップする必要があります。 だから、わたしは自分のSSISの一晩のプロセスが実行されたされてきた一方でSQLタスクを実行してバックアップを実行するために-基本的に実行されているmaster.dbo.xp_create_subdirフォルダが、その後存在し、先を確保するためにBACKUP DATABASE [DbName] TO DISK = 'G:\Backups\DbName\DbName.bak' WITH INIT。 そのタスクが失敗すると、残りのプロセスは中止され、通知が届き、翌朝、トランザクションログのドライブがいっぱいになり、手動で切り捨てて先に進みます。 ..ストーリーが繰り返され、トランザクションログが再び使用可能なディスク領域を超えてしまうまで。 「手動切り捨て」スクリプトは次のようになります。 use Staging; alter database Staging set recovery simple alter database Staging set recovery full dbcc shrinkfile ('Staging_log', 0, truncateonly); go だから私はこれに飽きてきており、代わりに適切にやってみることを決心し、ここの手順に従って実際のメンテナンス計画を作成しました: ことは、私はこれを以前に行ったことがないので、いくつか質問があります。 このようなトランザクションログをバックアップすると、自動的に切り捨てられますか、それとも他に何かする必要がありますか? データとトランザクションログのバックアップを同時に実行しても大丈夫ですか?そうでない場合、これを行う適切な方法は何ですか? バックアップファイルは、サーバー上のすべてのファイルを取得して別の場所に保存する別のプロセスによって夜間に取得されます。2日後にバックアップセットを期限切れにするのは良い考えでしょうか。それらを完全に期限切れにする必要がありますか? クリーンアップタスクは、のサブフォルダの下にある「古い」.bakファイルと.trnファイルをそれぞれ削除しますG:\Backups。それは理にかなっていますか? バックアップが失敗した場合や失敗した場合にETLを失敗させることができるように、SSISでこれを行う方が良いでしょうか?それとも私のETLプロセスは気にすべきですか? これが1つの投稿に対して多すぎる質問の場合は申し訳ありません。必要に応じて、編集して複数の質問をします。それらはすべて密接に関連していると思います。

1
tempdbバージョンストアに関する質問
今日、エラーに遭遇しました: エラー:3967、重大度:17 そして私が言うことができることから、それは基本的に「フルバージョンストア」です。私の店ではこれまでこのエラーに遭遇したことがないので、これは私が答えることが困難であったいくつかの質問を引き起こしました: 事前設定された最大サイズ(tempdbの合計サイズなどに基づく)がある場合、それは動的ですか? 動的でない場合に動的にする設定はありますか? これに基づいてアラートを設定できますか?(すなわち、サイズの追跡などに使用するDMV)

1
MSDBデータベースはなぜ信頼できるのですか?
TRUSTWORTHY注意しないと、この設定はかなり危険になる可能性があり、特定の状況を除いて、オフにしておくことをお勧めします。ただし、デフォルトでは、MSDBデータベースはデフォルトでTRUSTWORHTY設定さONれています。なぜだろう? このエントリをBOLで読みました 注デフォルトでは、MSDBデータベースのTRUSTWORTHY設定はONに設定されています。この設定をデフォルト値から変更すると、MSDBデータベースを使用するSQL Serverコンポーネントで予期しない動作が発生する可能性があります。 しかし、私は詳細に興味があります。なぜ具体的にオンにMSDBする必要TRUSTWORTHYがあるのですか?どの関数がそれを使用しますか?

1
プロファイラーなしで、クエリがロックの待機に費やした時間を表示するにはどうすればよいですか?
断続的に時間がかかるクエリを診断しようとしています。ロックを取得しようとしてブロックされている可能性があります。問題が発生している環境でプロファイラーを使用する権限がありません。 外部プロファイラーを使用せずに、この個々のクエリがブロックされている時間に関する統計を取得する方法はありますか?

1
PAGELATCH_ *待機タイプで待機しているブロックされたセッション?
編集:セッションレポートがブロックされているがPAGELATCH_*、LCK_M_関連する待機タイプではなく、で待機しているのはなぜですか? 以前は、SQLサーバーはブロッキングセッションのみをblocking_session_Id列で報告すると想定していました。ブロックされたセッションが論理ロックを待機していて、などのほかのものがなかった場合PAGELATCH_*。

1
DMV sys.dm_os_performance_countersをクエリするとゼロ行が返される
サーバービューの状態のアクセス許可をSQL Server 2014 Standard Edition (RTM)持つSYSADMIN役割を持つユーザーがいますが、DMVを実行しsys.dm_os_performance_countersてもレコードが返されません。 権限の何が問題になっているのでしょうか? @@ Versionの出力: Microsoft SQL Server 2014-12.0.2000.8(X64)Feb 20 2014 20:04:26 Copyright(c)Microsoft Corporation Standard Edition(64-bit)on Windows NT 6.3(Build 9600:)(Hypervisor)

1
拡張イベントセッションでライブデータを監視できない
PCでSQL Server 2014 Developer Editionを実行しています。system_healthセッションでデータを表示しようとしています。SSMSでは、データベースに接続し、サーバー/管理/拡張イベント/セッションを拡張しました。AlwaysON_health(停止)とsystem_health(実行中)が表示されます。 system_healthセッションを右クリックすると、次のエラーが発生します。 ストレージは、提供されたパラメーターを使用して初期化できませんでした。(Microsoft.SqlServer.XEventStorage)「system_health」という名前の拡張イベントセッションが見つかりませんでした。セッションが存在し、開始されていることを確認してください。(Microsoft SQL Server、エラー:25728) system_healthを展開すると、ターゲットのpackage0.event_fileおよびpackage0.ring_bufferが表示されます。いずれかのターゲットを右クリックして[ターゲットデータの表示]を選択すると、次のエラーが発生します。 ストレージは、提供されたパラメーターを使用して初期化できませんでした。(Microsoft.SqlServer.XEventStorage)関数 'fn_MSXe_read_event_stream'が存在しないか、権限がないため、表示できません。(Microsoft SQL Server、エラー:15151) 関数は存在します。私はそれを実行できます: select * from fn_MSXe_read_event_stream('system_health', 0); 実行すると、次のエラーが発生します。 Msg 25728, Level 16, State 10, Line 6 The Extended Events session named "system_health" could not be found. Make sure the session exists and is started. system_healthセッションがあることを知っています。私はセッションのリストに表示されます: select * …

1
SQL Server構成でSQL Serverサービスが空
Windows 8.1からWindows 10にアップグレードしたところ、SQL Server構成マネージャーのSQL Serverサービスが空であることに気付きました。現在のところ、SQL Serverは完全に機能します。SQL Server 2014はローカルマシンにインストールされます。 私はブログを読みました-https ://www.mssqltips.com/sqlservertip/2492/why-is-sql-server-configuration-manager-missing-services/および http://www.sqlservercentral.com/Forums/Topic1469391- 1292-1.aspxでも問題を解決できませんでした。 データベースをバックアップし、アンインストールして再インストールしましたが、ノードはまだ空です。私は何をすべきか? スクリーンショットで更新 SQL Server構成マネージャー画面

2
SQLサーバーの最大メモリにSSISが含まれていますか?
次のサーバーにSQLサーバーの2つのインスタンスとSSISをインストールしました。 RAMの容量は384 GBに近いことに注意してください これは、2つのインスタンスに適用した最大および最小のメモリ設定です。私は両方のインスタンスが等しい量のリソースを使用すると仮定します。それが実際に当てはまる場合、180 GBである184,320 MBが私のメモリをセットアップするための適切な開始番号ですか? SSISにはどのくらいのメモリを割り当てますか?

1
バックアップファイルにCDCが含まれているかどうかを確認するにはどうすればよいですか?
SQL Server 2008から2014までを使用して、Change Data Capture(CDC)を有効にしてデータベースをバックアップおよび復元する方法を知っていますが、私が探しているのは、フルバックアップファイルをクエリして、CDCデータが含まれているかどうかを確認する方法です。 以下のような方法だろう、何が素晴らしいことだRESTORE FILELISTONLYデータベースからファイルリストを取得しますが、代わりに、リストアがKEEP_CDCフラグを使用する必要がありますかどうかを判断するためにCDCの状態を取得していますか? バックアップにCDCデータが含まれているかどうかを確認する方法はありますか? ありがとう!

3
アセンブリ 'system.web、version = 4.0.0.0、culture = neutral、publickeytoken = b03f5f7f11d50a3a。' SQLカタログで見つかりませんでした
System.WebのHTTPUtility.UrlDecodeメソッドを使用してSQL CLR関数をデプロイしようとしていますが、デプロイできません。受け取ったエラー: .Net SqlClientデータプロバイダー:メッセージ6503、レベル16、状態12、行1アセンブリ 'system.web、version = 4.0.0.0、culture = neutral、publickeytoken = b03f5f7f11d50a3a。' SQLカタログで見つかりませんでした。 機能(SSDTプロジェクトの一部として): using System; using System.Web; using System.Data; using System.Data.SqlClient; using System.Data.SqlTypes; using Microsoft.SqlServer.Server; public partial class UserDefinedFunctions { [Microsoft.SqlServer.Server.SqlFunction(IsDeterministic = true)] public static SqlString udf_UrlDecode(SqlString encodedXML) { string decodedXML; decodedXML = HttpUtility.UrlDecode(encodedXML.ToString()); return new SqlString(decodedXML); } } このスレッドに関連しています。私はVS2012 …

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