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

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

4
結合の最大値を選択するクエリ
ユーザーのテーブルがあります: |Username|UserType|Points| |John |A |250 | |Mary |A |150 | |Anna |B |600 | とレベル |UserType|MinPoints|Level | |A |100 |Bronze | |A |200 |Silver | |A |300 |Gold | |B |500 |Bronze | そして、各ユーザーのレベルを取得するためのクエリを探しています。以下の線に沿ったもの: SELECT * FROM Users U INNER JOIN ( SELECT TOP 1 Level, U.UserName FROM Levels L …



2
「バッファキャッシュヒット率」の9990はどういう意味ですか?
私はブログの投稿からこのクエリを得ました: SELECT object_name, counter_name, cntr_value FROM sys.dm_os_performance_counters WHERE [object_name] LIKE '%Buffer Manager%' AND [counter_name] = 'Buffer cache hit ratio' 投稿は、キャッシュへのヒットの割合を与えると述べた。0〜100の値になることを示しているようです(87の結果を示しました)。 しかし、それを実行すると、非常に高い数値が得られます。以下に例を示します。 object_name counter_name cntr_value SQLServer:Buffer Manager Buffer cache hit ratio 9990 これは99.90%を意味しますか? そうでない場合、それはどういう意味ですか?そして、どうすれば本当の価値を得ることができますか? 注:257から352363までの値を取得しました 関連する場合は、他のサーバー統計をいくつか示します。 ページの平均寿命:145 ページ読み取り/秒:1,380,009,009

1
CONVERT()のこの問題の原因は何ですか?
次の2つのステートメントを検討してください。 PRINT CONVERT(NUMERIC(38, 0), 0x0100000001, 0); PRINT CONVERT(NUMERIC(38, 0), 0x0100010001, 0); 両方のステートメントが戻り-1ます。2番目のバイナリ値は最初の値よりも10進数65,536大きいため、これは間違っていませんか? 確かに、これは無言の切り捨てによるものではないでしょうか? 次のステートメントを実行した場合: PRINT CONVERT(NUMERIC(38, 0), 0x00000001, 0); PRINT CONVERT(NUMERIC(38, 0), 0x00010001, 0); 次のエラーが表示されます。 Msg 8114, Level 16, State 5, Line 1 Error converting data type varbinary to numeric. ここで何が起こっているかを診断するにはどうすればよいですか? これをSQL Server 2012 v11.0.5058で実行しています。結果は、SQL Server 2008 R2 SP2、SQL Server …

3
特定のSQL Serverインスタンスに「メモリ内のページをロック」権限があるかどうかを確実に判断するにはどうすればよいですか?
「メモリ内のページのロック」権限は、SQL Serverが使用するサービスアカウントに付与できます。これにより、SQL Serverはメモリがディスクにページングされるのを防ぐことができます。 SQL Serverマシンのいくつかには、SQL Serverが使用するサービスアカウントにこの権利を許可するように構成されたローカルポリシーがないことに気付きました。多数のサーバーがあるため、「ローカルシステムポリシー」管理コンソールを使用して各サーバーを手動で確認するのはせいぜい面倒です。 問題のサーバーに権限があるかどうかを判断するために使用できるT-SQLクエリ、拡張ストアドプロシージャ、またはその他の方法はありますか? 私はしたいと思いません使用しEXEC xp_readerrorlog 0, 1, 'lock memory privilege was not granted';、それは現在のSQL Serverエラーログを確認するに依存しているからです。サーバーが最後に再起動されてからログがロールオーバーされたと仮定すると、そのエラーログに関連するエントリが含まれない場合があります。最初のパラメーターをからなどに変更することで古いログを確認できることを理解しています0が1、エラーログは10個しか保持されておらず、十分ではない場合があります。設定を確認するフェールセーフな方法が必要です。

1
約50日後にSQL Server 2012 Page Life Expectancyが0にリセットされる
2サーバーHAクラスターで奇妙な動作に気づいたので、誰かが私の疑いを確認できるか、または他の説明を提供できると期待していました...ここに私のセットアップがあります。 2サーバーのSQL 2012 SP1インストール いくつかのデータベースでSQL AlwaysOn HAが有効になっています CPUは2.4GHz、4コア RAMは34 GB(AWSインスタンスであるため、奇数) リソース使用率は比較的低く、各サーバーには14 GB以上の空きメモリがあり、SQLは使用するメモリ量に制限がありません ディスクアクセス時間は問題ありません-15ms / ReadまたはWriteを超えることはほとんどありません データベースは大きくありません-1 GB、1.5 GB、7.5 GB SQLサーバープロセスは16 GBのプライベートバイト、15 GBのワーキングセットを使用しています 全体的に、リソースの問題は指摘されていません。奇妙な部分です。SQLは再起動されません(プロセスはほぼ6か月間実行されています)が、〜50日ごとに、Page Life Expectancyカウンターが(ほぼ)0に低下しているようです。perfグラフは次のとおりです。 カウンターデータを見ると(正確な数はなく、1時間ごとの集計)、PLEカウンター値は毎回(少なくともデータがあるたびに)約4,295,000秒(約50日間)に達したようです。 私のクレイジーな理論は、PLE番号が符号なしlong int(4,294,967,295の制限がある)としてミリ秒として保持され、49.71日で設計またはバグのためにリセットされるというものです。これにより、2つのサーバーの動作と、それらが持つ同一のパターンが説明されます。または、まったく異なるものになる可能性があり、私はまったく意味をなさない。:) 誰かがそのようなものを見たか、またはこの動作を説明できますか? PS私はこの投稿を見ましたが、私の場合は少し違うようです。 PPSこれは再投稿です-私はもともとここに投稿しましたが、ここの聴衆はより適切であるとアドバイスされました。 ありがとう!

1
50個のインスタンスを持つSQL Server 2012 Standardサーバーはインスタンスをアンインストールしません
SQL Serverの50インスタンスの上限に達したため、これは問題だと思われます。限界では、当然、それ以上のインスタンスはインストールされません。ただし、それらもアンインストールされないようです。さらに悪いことです。 インスタンスのSQLエンジンを選択した後、次にヒットすると、[機能の選択]ダイアログでハングします。 私はこれについて多くの情報を見つけませんでした。最も興味深いヒットはこれでした:http : //social.msdn.microsoft.com/Forums/sqlserver/en-US/24a1e5f3-25f3-48c8-973a-4c6a18578e42/trying-to-uninstall-1-of-50-sql -server-2008-r2-express-hangs-on-please-wait また、使用することをお勧めします setup.exe、いくつかのパラメーターをしてインスタンスをアンインストールするますが、GUIを起動せずに失敗し、通常のアンインストールを実行しないと、インスタンスをアンインストールできません。 標高は何もしません。再起動は役に立ちません。ログには「ユーザーによってキャンセルされました」としか表示されません。その時点までに明らかなものはありません。検証はすべて緑色です。 セットアップでは、SQL Server 2012 SP1-すべてのインスタンスが11.0.2100であると表示されます。 マイクロソフトが「修正しない」のステータスでチケットをクローズしたため、自分の質問に答える/閉じることを選択します。 彼らがSQL Server 2014でこれを修正することを願っていますが、私はそれを自分でテストしたり、計画したりしていません。

3
BlockOnPossibleDataLossを無視するsqlpackage.exe?
BlockOnPossibleDataLossをfalseに設定したdacpacがありますが、sqlpackage.exeで実行すると展開がブロックされ、「列[a]が削除されているため、データ損失が発生する可能性があります。」 ただし、まったく同じ展開プロファイルを使用してVisual Studio 2012から発行すると、それが実行されます。

2
SSIS 2012環境変数の作成が失敗する
環境をあるサーバーから別のサーバーに移植するスクリプトを作成しています。私はcatalog.create_environment_variable「入力値のデータ型が「文字列」のデータ型と互換性がありません」というエラーを受け取る問題の呼び出しに直面しています。proc "check_data_type_value。"から出てきます。 奇妙なのは、GUIスクリプトに変数を渡せば、そのクエリが機能するということです。 DECLARE @var sql_variant = N'\\myserver\ssisdata' EXEC [catalog].[create_environment_variable] @variable_name = N'FolderBase' , @sensitive = False , @description = N'' , @environment_name = N'Development' , @folder_name = N'POC' , @value = @var , @data_type = N'String' GO ただし、このスクリプトアプローチを使用しても機能しません。私が行ったレッグワークでは、このエラーメッセージは通常、varcharではなくnvarcharデータ型を使用して解決されることを示しています。しかし、それは私のものには当てはまりません。 次のスクリプトの108行目。私の仮定は、それの何かとグラグラということですsql_variant型が、私は考えていない何その事があるの。 USE SSISDB; GO DECLARE @folder_id bigint , @folder_name nvarchar(128) = …

2
「アーカイブされているが使用可能な」データのSQL Serverデータベース設計
「縮小」しようとするこの大規模なデータベース(1 TBを超える)があります。データベースは1つの主要なエンティティを中心に展開するため、「訪問」と呼びましょう。議論のために、それが医療行為のデータベースであるとしましょう。 手続き、年次、フォローアップ、予防接種など、合計30の訪問「タイプ」があり、それぞれが「visit_immuno」などの「Visit」への補助表です。 データベースには、2000年以降約12年間のデータが蓄積されています。「ライブ」バージョンに約3年間のデータを保持し、残りを「old_data」データベースに保持することを提案する人がいます。日付は正規化されているため、「Visit」テーブルにのみ保存されます。Visitテーブルには、ROWVERSION列とBIGINT疑似ID(クラスター化)列も含まれます。すべての意図と目的のために、クラスタリングキーにSEQUENCE(SQL Server 2012 Enterprise)が入力されているとしましょうcid。 visit.date医師がデータの彼の「ブリーフケース」を拡張訪問し、リターンになったとき、それはメインテーブルにマージされます例えば、クラスタリング・キーと同じ順序で常にではありません。また、「visit」テーブルにいくつかの更新があり、ROWVERSION列がcidとdate列の両方と同期しなくなります-簡単に言えば、この理由のために適切なパーティションキーを作成することもできROWVERSIONませんcid。 「ライブ」からデータを取り出すためのビジネスルールは、ということであるvisit.date36ヶ月よりも大きくなければなりませんし、子visit_paymentレコードが存在している必要があります。また、「old_data」データベースには、を除くベーステーブルは含まれていませんvisit%。 したがって、次のようになります。 Live DB(毎日使用)-すべてのテーブルOld-Data DB- visit%テーブルの古いデータ 提案では、2つのデータベースのテーブル全体でALLを結合するビュー(およびを除く)のすべてのベーステーブルに対するシノニムを含むシェルである結合DBが必要です。Live DBvisit%visit% 同じインデックスがOld-DataDBに作成されていると仮定すると、クエリはUNION-ALL ビューで適切に実行されますか?UNION-ALL ビューの実行計画をどのような種類のクエリパターンがトリップするか?

1
SQL Server 2005からSQL Server 2012へのアップグレード
次のテスト環境をセットアップしています。 仮想マシン(Hyper-V) Windows Server 2008 R2 SP1(x64ビット) Windows SQL Server 2005 Developer Edition SP4(x64ビット)(デフォルトのインスタンス名) マージレプリケーションが設定された1つのデータベース...それぞれ2つのサブスクライバを持つ3つのパブリケーション。 SQL Server 2012 Developer Edition(sp1)へのアップグレード手順をテストしています... 64ビットSQL Server 2012開発用のisoをダウンロードしました。(sp1)MSDN(フルライセンスコピー)からアップグレードパスを開始しました。さまざまな基準のチェックを開始する最終段階の1つで、以下に概説する奇妙な問題に遭遇します。 Rule "Upgrade architecture mismatch" failed. The CPU architectures of upgrading feature(s) are different. To upgrade these features, Setup architecture must be the same as the features being …


4
SQL Server 2012は、テーブル名と列名を[括弧]で囲んでいます
Columnsフォルダーをエディターウィンドウにドラッグすると、列の完全なリストがブラケットなしで追加されます。列を個別にドラッグすると、ブラケットが表示されます。 とにかくそれをオフにする方法はありますか?私はオプションに何も見つけることができず、それらは本当に注意散漫です。

5
SQLストアドプロシージャを一度に1人で実行するように制限するにはどうすればよいですか?
基本的に、あるテーブルから値を選択して別のテーブルに挿入するストアドプロシージャがあります。これは一種のアーカイブです。複数の人が同時にそうするのを避けたいです。 このプロシージャが実行されている間、他の人がそれを開始できるようにしたくはありませんが、シリアライゼーションは必要ありません。他の人は、処理が終わった後にプロシージャを実行します。 私が欲しいのは、プロシージャを実行しているときに、他の人がそれを開始しようとしてエラーが発生することです。 私はsp_getapplockを使用して試しましたが、その人がプロシージャを実行するのを完全に止めることができません。 また、sys.dm_exec_requestsを使用してプロシージャを見つけてブロックしましたが、これは機能しますが、一部のサーバーではsys.dm_exec_sql_text(sql_handle)を実行する権限がないため、最適ではないと思います。 これを行うための最良の方法は何ですか?

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