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

SQL Server 2008 R2(メジャービルドバージョン10.50.xxxx)。また、sql-serverでタグ付けしてください。

3
SQL Server 2008 R2の一般的なメモリ要件
私はDBAの仕事の経験はありませんが、SQLサーバーに追加のリソースを要求するためのケースを作ろうとしていて、何人かが実行する必要のある大まかな概算を提供してくれる賢い人たちを集めることを望んでいました。ITが本番SQLサーバーに割り当てたリソースの割り当てが少ないのではないかと思います。 ハードウェアとソフトウェア: データベース:SQL Server 2008 R2エンタープライズデータベース Windows:Windows 2008 r2 Enterprise 64ビット、VMwareで実行していることを確認してください。 プロセッサー:Intel(R)Xeon(R)CPU E7-4860 @ 2.27GHz 2.26 GHz(2プロセッサー) 搭載メモリ:4GB データベースファイル用ハードドライブ:300 GB バックアップ用ハードドライブ:150GB ログ用ハードドライブ:100GB 応用: 合計で約170GBのデータを追加する3つのメインデータベース、同じサーバー上のReporting Servicesデータベース(SSRS)があり、毎日生成される多分10の異なるレポート(それぞれ平均70万件のレコードを含む)を格納しています。私たちのユーザーベースは約20人の同時ユーザーです。そのうち5人は、大量のデータを処理する大量のレポートを生成する「リソース集中型」と考えることができます。ユーザーの大半は、asp.net WebサイトおよびレポートサーバーWebサイトを介してデータベースと対話します。さらに、開発者はサーバーに直接リモート処理することにより、BIDSでSSISを広範囲に使用します(最大2つのリモート接続)。最後に、かなり複雑なデータウェアハウジング操作があり、サーバーでも実行されるSSISパッケージを介して、おそらく1日あたり300万件のレコードを取り込みます。 現在の問題: 慢性的なサーバータイムアウトがあり、ウェブサイトへの応答時間がかなり悪いです。私たちが持っているメモリの量(4GB)はおそらく大きなボトルネックだと思います。以前の追加メモリの要求は、より多くのクエリ最適化を実行する必要があるという一般的な応答で拒否されました。私たちはsqlの専門家ではありませんが(私たちのセットアップでわかるように)db adminの専門家ではありませんが、ハードウェアがボトルネック。 tl; drを回避してくれてありがとう!

5
SQL Serverの最大メモリ設定
SQL Server 2008とWebベースのアプリケーションを、2 GBのメモリしか利用できない単一の専用サーバーで実行しています。 他で言及されているように、SQL Serverは定期的に最大98%の物理メモリを使用します。これは、サーバーで実行されているWebアプリケーションの速度を低下させるようです。 SSMSの[サーバーのプロパティ]の[メモリ]で、[最大サーバーメモリ(MB)]が2147483647に設定されている 私の質問は、利用可能なメモリの量を考えると、最大サーバーメモリボックスに入れる推奨数は何ですか?また、同じサーバーがWebアプリケーションも実行しているということですか? さらに、SQL Serverの実行中にこの数を変更しても安全ですか? アドバイスありがとうございます。

1
SQL Serverクエリが7 MB /秒を超えるディスクI / Oを使用しないのはなぜですか
IOmeterテストを使用して、200 MB /秒を超えるパフォーマンスを示すSSDを持っています。しかし、ローカルマシンからSQLクエリを実行すると、Windowsリソースモニターに7MB /秒を超えるディスクIOが表示されません。これは、実行に2分以上かかるクエリでも当てはまります。SSDから7MB /秒しか使用していないことがボトルネックになるのは何ですか? 私は走っています: Windows Server 2012スタンダード SQL Server 2008 R2 Intel i7 3820 32GBのRAM sandisk SSD

1
SQL Serverスナップショットレプリケーションは毎回完全にデータをコピーしますか、それともデルタを発行しますか?
2つのサーバー間のスナップショットレプリケーションを見ています。これが私が持っているものです: 500GBデータベース 〜500MBの毎晩のbcpロード 〜50MBの毎日のトランザクション 使用するレプリケーションの種類について、社内の他のDBAに尋ねていました。スナップショットレプリケーションを使用するように言われました。ただし、私が理解して読んでいることから、ロード後の毎晩、スナップショットはデータベースをディストリビューターに完全にコピーし、他のサーバーを完全に上書きします。 スナップショットはデルタで機能しますか、それとも毎回完全なコピーですか?

2
公開された複製DBのDB互換性レベルを90から100に変更した場合の影響
現在、互換性レベル90(2005)で動作している一連の公開データベースを備えたSQL Server 2008 R2サーバーがあります。 サブスクリプションデータベースもSQL Server 2008 R2ですが、宛先データベースは互換性レベル100に設定されており、レプリケーションは正常に機能しています。 パブリッシュされたデータベースの互換性レベルを変更した場合、レプリケーションに何らかの影響がありますか、それともすべてのサブスクリプションを再初期化してレプリケーションを再開した場合だけでしょうか? パブリッシュされたデータベースの互換性レベルを変更すると、レプリケーションストアドプロシージャの機能が少し変わる可能性があると思いますが、100%確実ではありません。 これは事実ですか?

1
デッドロックグラフに犠牲者のいないエントリがあるのはなぜですか?
SQL Server 2008のデッドロックグラフの分析方法を学習しようとしていますが、<victim-list>ノードが空のエントリがたくさん見つかります。これらのエントリの意味がわかりません。被害者がいない場合、どのようにしてデッドロックの原因となっているwaitresourceを特定できますか?これらのエントリはどういう意味ですか? ここに私が見ているエントリーの簡単な例があります: <deadlock-list> <deadlock> <victim-list /> <process-list> <process id="processd2b6508" taskpriority="0" logused="10000" waittime="31" schedulerid="63" kpid="9104" status="suspended" spid="69" sbid="0" ecid="184" priority="0" trancount="0" lastbatchstarted="2012-07-30T01:10:45.550" lastbatchcompleted="2012-07-30T01:10:45.550" clientapp=".Net SqlClient Data Provider" hostname="XXXXXXX" hostpid="3648" isolationlevel="read committed (2)" xactid="30461033" currentdb="5" lockTimeout="4294967295" clientoption1="671088672" clientoption2="128056"> <executionStack> <frame procname="" line="1" sqlhandle="0x020000002340c50225c17d0eec9bf7c51129348edffd1c70" /> <!--About 2 more frame tags... --> …

3
MS SQLデータベースで相互に関連するストアドプロシージャの巨大なWebを文書化する:どのツールまたは形式ですか?
これは「1000ページの本を読む」よりも短い答えの質問であるといいのですが、それが本当の状況なら、私をそれに当てはめてください。 私は本物のDBAではありません。私はDBAが必要だと気づいているソフトウェア開発者ですが、私が働いている店にはDBAがいません。ただし、いくつかのコアストアドプロシージャを含むMS SQLデータベースの設計は、大きな混乱です。ストアドプロシージャは遅く、バグがあると思われますが、どのように機能することが予想されるのかさえわからないため、修正方法もわかりません。 最初に、すべての機能がどのように機能するかを文書化し、ユニットテストを開始して、ストアドプロシージャが実際に機能することを証明する一連のユニットテストを構築することにしました。彼らが実行するロジックは、私たちのアプリケーションの重要な部分です。つまり、それは当社の主要製品の「宝石」であり、その動作方法は完全に文書化されていません。 私は、プロのDBAが相互に呼び出すストアドプロシージャの巨大なWebを理解するために、既存の、または必要に応じて自分で作成することを期待している可能性がある特定の技術ドキュメントを探しています。 大きなストアドプロシージャを文書化するための通常の形式は何ですか?各Inパラメータの期待値の説明(つまり、「前提条件」、「事後条件」、つまりブールパラメータの場合、オンまたはオフにすると何が変わるかなど) 通常、それをどのように文書化しますか?SQLコメントのみ?目的に固有の外部ツールですか?外部の「ドキュメント」?MS SQL Management Studio以外にSQLツールはありませんが、環境の理解、文書化、およびテストを改善するツールがあるかどうか疑問に思っています。多分それが私の質問をするより良い方法です。混乱を解決するには、どのツールが必要ですか? 私たちの目標は、次のことができるようにすることです。 A.生成されたドキュメント、または環境に追加したツールを使用して、プロシージャがどのように機能するかを理解し、ストアドプロシージャの単体テストカバレッジを作成できるようにします。 B.これらの複雑なストアドプロシージャをそれぞれ適切に呼び出す方法をクライアントアプリ開発者に示す。 C.ストアドプロシージャの単体テスト。

2
1つのメインジョブから複数のSQL Serverエージェントジョブを順番に呼び出す良い方法は?
順次実行する必要があるSQL Serverエージェントジョブがいくつかあります。実行する必要があるジョブの概要をわかりやすくするために、への呼び出しで他のジョブを呼び出すメインジョブを作成しましたEXEC msdb.dbo.sp_start_job N'TEST1'。はsp_start_job即座に終了しますが(ジョブステップ1)、TEST1次のジョブを呼び出す前に、ジョブが終了するまでメインジョブを待機させます。 そのため、ジョブが呼び出された直後に実行を開始し(ジョブステップ2)、メインジョブを強制的にサブジョブが完了するまで待機させる次の小さなスクリプトを記述しました。 WHILE 1 = 1 BEGIN WAITFOR DELAY '00:05:00.000'; SELECT * INTO #jobs FROM OPENROWSET('SQLNCLI', 'Server=TESTSERVER;Trusted_Connection=yes;', 'EXEC msdb.dbo.sp_help_job @job_name = N''TEST1'', @execution_status = 0, @job_aspect = N''JOB'''); IF NOT (EXISTS (SELECT top 1 * FROM #jobs)) BEGIN BREAK END; DROP TABLE #jobs; END; これは十分に機能します。しかし、私はよりスマートで安全な(WHILE 1 = …

1
実際の最低の正のREAL番号は何ですか
MSDNによると、REAL番号の範囲は-3.40E + 38から-1.18E-38、0および1.18E-38から3.40E + 38です。明らかに、実際の下限ははるかに低いです。次のスクリプトは、REAL列に1.401298E-45を入力します。 CREATE TABLE a ( r1 REAL NULL , r2 REAL NULL , r3 REAL NULL ) ; GO INSERT INTO a ( r1, r2 ) VALUES ( 1.18E-37, 10 ) ; GO DECLARE @i INT ; SET @i = 1 ; WHILE @i < 20 …

2
HierarchyIdでツリーブランチをロード/読み取るためのセットベースの方法はありますか
HierarchyIdをいじっていますが、次のことを行うためのセットベースの方法を理解していません。 すべてのサブツリーを一度に挿入する 一度にすべてのサブツリーを取得する この質問は以前の質問に関連しており、HierarchyIdでこれらの2つのタスクを実行する唯一の方法は、一度に1つのノードまたは1つのレベルであると思われます。実体化されたパスを使用している場合、両方のアクションは、単一の(そして些細な)セットベースのコマンドによって簡単に実行されます。 私は何が欠けていますか? 編集:サブツリーを移動する方法も見逃しましたが、ミカエル・エリクソンのコメントからそれを学びました

2
bakファイルをより小さいmdfおよびldfデータベースファイルに復元する
私はレガシーデータベースの設計に悪夢のような欠如があるので、ここでは触れませんが、サーバー上のファイルは(比較的)巨大です。私が持っています: MyDatabase.mdf:24.8GB MyDatabase.ldf:114.6GB このデータベースは毎晩.bakファイルにバックアップされ、レポートサーバーに送られ、そこで復元されます。.bakファイルは、わずか1.8 GBと非常に小さくなります。 ただし、レポートサーバーで復元しようとすると、スペース不足のため失敗します。サーバーには約100GBの空き容量があり、元のサーバーでファイルが消費した139.​​4GB全体を消費しようとしています。圧縮に関する私の知識がひどく間違っているのでない限り、1.8 GBのファイルが実際に7400%拡大されていないことにはかなりの自信があります。 私の質問:そのスペースを事前に予約せずにこのバックアップファイルを復元するようにSQL Serverに指示する方法はありますか?ログは気にしません。そこにデータが必要です。開発とスキーマの観点からデータベースを理解していますが、私は決してDBAの一種ではありません。 これはSQL Server 2008 R2にあります。助けや提案をありがとう。

2
状態の変更をミラーリングするときにジョブ/手順を実行するイベント通知を作成する方法
この質問の順番でこの質問をしています。T-SQLを使用してTCP経由で文字列を送信できますか? Remus Rusanuが私の問題に最適な解決策であると思われるものを公開します。 これまでのところ、DATABASE_MIRRORING_STATE_CHANGEの通知イベントを作成するために何が必要だと思いますか? トリガーによってテーブルに行が挿入されたときに、このイベント通知を作成して、タイムスタンプと通知からのIDを保存する方法を教えてください。 これまでのところ、IDごとに1つのアラートを設定し、それぞれが次のようなジョブを実行しています(この例はID = 1の場合です): DECLARE @state AS varchar(50); SELECT @state = mirroring_state_desc FROM SYS.database_mirroring WHERE mirroring_guid IS NOT NULL; IF (@state IS null) SET @state = ' '; INSERT INTO MirroringAlerts (DateTime, alertID, alertDesc, Sync, alertCreator) values (SYSDATETIME(), 1, 'Principal synchronized with W ', @state, @@SERVERNAME) …

5
SQL Server 2008 R2パフォーマンスカウンターを復活させる方法は?
Windows 7 x64でSQL Server 2008 R2 Developerをデフォルトのインスタンスとして実行しています。何らかの理由で、SQL Serverのパフォーマンスカウンターが表示されなくなったようです。SELECT * FROM sys.dm_os_performance_countersゼロ行を返します。 走ってみましたlodctr /T:perf-MSSQLSERVERsqlctr.ini。エラーなしで完了しましたが、リモートレジストリサービスを再起動しても、何も修正されませんでした。実際、カウンタはperfmonから欠落しています。unlodctr MSSQLSERVERカウンターはまだインストールされていないと言いますが、カウンターがlodctr /Q:MSSQLSERVER存在し有効になっていると言います。通常のWindowsおよび.NETカウンターは正常に機能しています。 Windowsエラーログに、エラー8317が表示されます。 レジストリキー 'HKLM \ SYSTEM \ CurrentControlSet \ Services \ MSSQLSERVER \ Performance'に関連付けられた値 'First Counter'をクエリできません。SQL Serverパフォーマンスカウンターが無効になっています。 SQL 2012 RC0のインストールが失敗したために問題が引き起こされたのではないかと思います。SQL Server 2008 R2を再インストールする以外に、回復方法に関する提案はありますか?

3
SSMSに接続を保存しますか?
SSMSを開いたときに、データベースサーバーの保存されたリストへの接続を開くような、何らかの種類のセッションまたはプロファイルをSSMS(2008 r2)に保存できますか? たとえば、SSMSを頻繁に開いてから、SQL Server NY-DB01、NY-DB02などに接続します。これらすべてを一度に開くだけのショートカットはありますか?

2
DBパフォーマンスを最大化するには、SSISを介して大量のデータをSQL Server 2008にロードした後に実行する必要があるコマンド
テストデータを空のデータベースに読み込むSSISパッケージを作成しました。一部のテーブルは非常に大きい(約7億行)。SSISパッケージが完了したら、データベースのパフォーマンスを最大化するために(見習いDBAとして)実行する必要があるコマンドはありますか? たとえば、私は実行しましたEXEC sp_updatestatsが、インデックスを更新する必要がないと報告されました。 大量のデータが読み込まれた後に行うことのリストはありますか、それともSQL Server 2008がそれらすべてを処理してくれるのですか?

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