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

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

1
トレースフラグ1222が機能していませんか?
同様に構成された2つの2008r2 SQL Server "A"と "C"を使用する顧客サイトがあります。両方のサーバーで、トレースフラグ1204および1222が有効になり、DBCC tracestatus両方のサーバーで次のように表示されます。 TraceFlag Status Global Session 1204 1 1 0 1222 1 1 0 3605 1 1 0 Aでは、トレースフラグは期待どおりに機能し、デッドロックが発生すると、エラーログに1204と1222の両方のデッドロックレポートが記録されます。ただし、Cでは、1204レポートのみが表示され、1222レポートは取得されません。 私の人生では、この違いの理由はまったくわかりません。私はこれを広範囲にグーグルで調べ、これらのトレースフラグに関するMSドキュメントを読んだ(そして再度読んだ)ので、このような動作のレポートも、何が原因であるかについてのヒントも見つかりません。近づく唯一のことは、どちらのトレースフラグも機能していないという時折の主張ですが、これらはすべて、有効化コマンドにタイプミスがあった場合のケースであることが判明しました。DBCC TRACESTATUSを使用して確認しているため、これは当てはまりません。 そのため、トレースフラグ1222 のみが機能しない原因となる可能性のある原因、および/またはそれを修正する方法についての洞察は、高く評価されます。 さて、ここに興味深い展開があります。自分でデッドロックを生成するたびに(このコードを使用:https : //stackoverflow.com/questions/7813321/how-to-deliberately-cause-a-deadlock)、両方のトレースレポートがエラーログに記録されます。デッドロックレポートの1つのみをトリガーするように見えるのは、アプリケーションから数日ごとに発生する「自然な」デッドロックだけです。これが役立つかどうかはわかりませんが、トレース1222が1204と同じデッドロック状態のすべてについて報告しないと考える理由はありますか?

1
削除されていないメモリ最適化DLL
BOLから、私の理解は、SQL Serverサービスが開始すると自動的に再コンパイルされ、不要になったときに削除されるため、DBAはメモリ最適化テーブル用に作成されたDLL、またはネイティブにコンパイルされたストアドプロシージャを管理する必要がないということです。しかし、私は目撃しています。メモリ最適化テーブルが削除され、サービスが再起動された後でも、DLLはファイルシステムに存在し、SQLメモリにロードされ、プロセスにアタッチされています。これは、それらがまだsys_dm_os_loaded_modulesに表示されており、SQLサービスの実行中にそれらを削除しようとすると、ファイルシステムでロックされるという事実からもわかります。 これはバグですか?または、後日クリーンアップされますか?後日、インスタンスの再起動でない場合、クリーンアップをトリガーするものは何ですか?

1
SQL Serverからタイムゾーンキー名を取得する最良の方法
以下は私がつなぎ合わせたものですが、他に利用できる方法があるかどうかを確認したいと思いました。 SET NOCOUNT ON; GO DECLARE @tz VARCHAR(50) EXEC [master].[dbo].[xp_regread] 'HKEY_LOCAL_MACHINE' ,'SYSTEM\CurrentControlSet\Control\TimeZoneInformation' ,'TimeZoneKeyName' ,@tz OUT; SELECT GETDATE() ,'(' + LEFT(PARSENAME(REPLACE(@tz, ' ','.'),3),1) + '' + LEFT(PARSENAME(REPLACE(@tz, ' ','.'),2),1) + '' + LEFT(PARSENAME(REPLACE(@tz, ' ','.'),1),1) +')' 出力:2014-10-14 16:22:21.037(CST)

2
SQL Server 2014 Standard Edition Trialをフルコアライセンスにアップグレードできますか?
SQL Server 2014 Standard Trialエディションのコピーをインストールすると、そのバージョンを(完全に再インストールせずに)フルバージョン(コアライセンス)にアップグレードできますか?ライセンスを待つ間、このようなものをインストールして構成したいのですが、簡単にライセンスを取得できない場合に自分を悲しませたくありません。 編集:この質問を見つけた人のための詳細情報- Microsoftサイトでは、評価版をダウンロードするときに「SQL Server 2014」以外の何も指定していません。しかし、彼らはあなたに特定の版を選ばせないので、シャンキーのコメントは正しいと思います(それはエンタープライズ版です)。 Thomasが私に指摘したように、SQL Server 2014 Evaluation Enterpriseからのアップグレードパスは次のとおりです(Microsoftはリンクの移動/削除が大好きなため)。 SQL Server 2014評価エンタープライズ2 SQL Server 2014 Enterprise(サーバー+ CALまたはコアライセンス) SQL Server 2014ビジネスインテリジェンス SQL Server 2014 Standard SQL Server 2014開発者SQL Server 2014 Evaluation Enterprise(無料版)から有料版へのWebアップグレードは、スタンドアロンインストールではサポートされていますが、クラスター化されたインストールではサポートされていません。

3
メッセージの取得を続行:ページの割り当てに失敗:FAIL_PAGE_ALLOCATION 540
私は次のことでいくつかの助けをいただければ幸いです、私はいくつかグーグルをやったが、これを解決することができませんでした。 SQLログ「失敗した割り当てページ:FAIL_PAGE_ALLOCATION 540」でメッセージを受け取り続け、この質問の最後に追加するダンプが続きます。 参考までに、ビルドは次のとおりです。 vCenterで実行されている仮想サーバー Windows Server 2008 R2 64ビットSQL Server 2012 SP1 Enterprise(11.0.2100)8GB RAM SQL Server Max and Min memory is set to 6144 MB サーバーは2ノードの可用性グループの一部であり、これが現在のプライマリノードです。 このインスタンスはMicrosoft SharePointのデータベースをホストしています 私は、Perfmonトレースを24時間実行しましたが、ダンプの1つの後にPLEがドロップし、その後再び上昇したことがわかりました。他に特に奇妙なものはありません。 SQL Serverはまだ実行中です。 SQLログからの抽出: 10/03/2014 09:59:52,spid866,Unknown,CACHESTORE_XMLDBELEMENT (node 0) KB<nl/>---------------------------------------- ----------<nl/>VM Reserved 0<nl/>VM Committed 0<nl/>Locked Pages Allocated 0<nl/>SM Reserved 0<nl/>SM Committed 0<nl/>Pages …

2
SQL Server 2008で10秒未満のジョブをスケジュールする方法
3秒ごとにジョブを実行したいのですが、SQL Server 2008では10秒未満の間隔を定義できません。 このジョブは、訪問者情報とセグメンテーション情報を、Google検索で追跡されるデータベースに挿入/更新するために使用されます。 2〜3秒で最大約100行が挿入されます。そのジョブは、データベースにテーブルを挿入して更新します。spジョブスケジューリング構成を使用してスケジュールする方法はありますか?


3
特定数以上の行を挿入すると、INSERTに5時間以上かかる
テーブルに約1,350,000行未満を挿入する場合、すべて約2分かかりますが、挿入される行数が多い場合、データの挿入に必要な時間は約5時間に増加します。 問題はクエリまたはインデックスに関連していません。すべてが長い間正常に動作しており、クエリ、テーブル、またはインデックスの構造には何も変更されていないためです。 約2週間前に初めて問題が発生し、挿入された行の数が+ -1,350,000を超える日にも繰り返し発生します。たとえば、ある日に挿入された行の数は1,200,000であり、プロセスに2分かかり、他の日に行の数は1,450,000であり、データの挿入に5〜6時間かかります。 インデックスを再構築しようとしましたが、役に立ちませんでした。

2
Unicodeを非Unicodeに変換するときの自動変換/ NVARCHARからVARCHAR
Unicodeコードポイント9619は「ダークシェード」と呼ばれる文字です:▓(http://unicode-table.com/en/search/?q=9619)。 SQL_Latin1_General_CP1_CI_AS照合と1252コードページを使用すると?、コードページ1252にこの文字が含まれていないように見え、これがSQL Serverのように見えるため、そのUnicode文字を非Unicodeデータ型にキャスト/変換すると疑問符()が発生することが予想されます。変換できない場合の動作。 したがって、私の質問は、SQL Serverがこの文字を「パイプ、壊れた垂直バー」であるASCIIコード166に変換するのはなぜ¦ですか。 SELECT NCHAR(9619), CAST(NCHAR(9619) AS CHAR(1)), ASCII(CAST(NCHAR(9619) AS CHAR(1)))

1
全文索引とスカラーインデックスの組み合わせ
たとえば、全文を使用して検索できる必要のある1200万人の名前と住所のデータベースがあるが、各行には整数値も含まれているとしCOMPANYIDます。テーブルには、1,200万行を超える約250の個別のCOMPANYIDが含まれています。 フルテキストインデックスを定義するときCOMPANYに、ツリーにそれぞれ独自の「ブランチ」を与えることは可能ですか?

3
Microsoft SQL Serverのベンチマーク方法
私の会社では、SQL Server 2008 R2をホストする複数の仮想マシンを使用しており、一部のマシンは他のマシンとは異なる動作をします。NASへの接続が遅いためにVmwareホストが非常にビジーなためです。 テストSQLデータベースでSQLコードを実行する方法、または各VMのベースライン/ベンチマークパフォーマンスでいくつかのパフォーマンステストを実行するために使用できる既知のベストプラクティスを実行できる方法はありますか?これらのマシンをProdまたはUAT環境に?ありがとう、Davide。

2
sys.dm_db_index_usage_statsの情報は信頼できるか
ドキュメントがない古いシステムのデータをアーカイブしています。私は幸運... テーブルが作成された日時、最後にアクセスされた日時などを確認したいのですが、このクエリで正しい答えが得られると信頼できますか、それとも最初に確認する必要があるパラメータがありますか?SQL Server 2008 R2: SELECT t.Name AS Tabelname, p.rows AS NoOfRows, MAX(us.last_user_lookup) AS LastUsed, t.create_date AS CreatedDate FROM sys.tables t INNER JOIN sys.indexes i ON t.OBJECT_ID = i.object_id INNER JOIN sys.partitions p ON i.object_id = p.OBJECT_ID AND i.index_id = p.index_id LEFT JOIN --A lot of the tables did not …

1
インデックスは、個別のSELECTと比較してOR条件を使用するとはるかに遅くなります
これらの質問と与えられた回答に基づいて: SQL 2008 Server-非常に大きなテーブルに接続されている可能性があるパフォーマンスの損失 履歴データを含む大きなテーブルは、SQL Server 2008 Stdを過剰に割り当てます。メモリ-他のデータベースのパフォーマンス低下 データベースSupervisionPに次のように定義されたテーブルがあります。 CREATE TABLE [dbo].[PenData]( [IDUkazatel] [smallint] NOT NULL, [Cas] [datetime2](0) NOT NULL, [Hodnota] [real] NULL, [HodnotaMax] [real] NULL, [HodnotaMin] [real] NULL, CONSTRAINT [PK_Data] PRIMARY KEY CLUSTERED ( [IDUkazatel] ASC, [Cas] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS …

1
クラスター化された複合キーを持つテーブルでの「大きな」挿入中に何が起こりますか?
私のSQLの知識は限られているので、私が使用する用語はおそらく正しいものではありません。 複数の場所のテスト結果を格納するテーブルがあります。 テストは異なる場所(ネットワーク接続なし)の異なるデータベースに記録され、「マスター」場所は他の場所から定期的にテスト結果を「インポート」します。 LocationId(int)列とDate(datetime)列にこの順序でクラスター化された複合主キーを配置する予定です。その理由は、ロケーションのすべての結果を一緒に保持する必要があるためです。日付範囲ではなく、日付範囲とロケーションでクエリを実行することはほとんどありません。 行のサイズは80〜100バイトで、テスト結果の数は数百万を超えてはなりません。通常の「インポート」では、別の場所から50〜10万の結果が挿入されます。 インポート中に何が起こりますか?SQLはクラスタリングを維持するために既存の行を「移動」しますか、それともテーブルを「断片化」させますか?インポートが一度に1行ずつ実行されると、パフォーマンスに大きな影響を与える可能性がありますか?行の順序を気にせず、ID列を主キーとして追加し、日付列にインデックスを追加してクエリを支援する必要がありますか?

1
SQL Serverでの低速なDELETEに対して要求された説明
SQL Serverの削除動作に関する追加の洞察/推論を取得したいと思います。1800 GBを超えるかなり大きなデータベースがあります。 数百万行の非常に浅いテーブル(少数の整数列のみ)があります。これらの浅いテーブルから10,000の行を削除する場合、削除クエリは一般に非常に高速です(多くても数秒)。 また、image平均100 KBの画像を保存するタイプのフィールドを持つテーブルもあります。このテーブルから数千行しか削除しない場合、1分以上かかります。 違いは明らかですが(サイズの点ではるかに多くのデータが削除されます)、SQL Server内で何が起こるかについてもっと知りたいと思っています。後者の削除が非常に遅くなることをよりよく理解できるように。 誰かが光を当ててくれますか?

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