2016-05-17 9 views
1

既定のSQL Server 2008 R2の構成設定を評価中です。 私は本番サーバー上で以下のスクリプトを実行するように依頼されています:この上に進む前にSQLの構成:長所と短所

sp_configure 'remote query timeout', 0 
sp_configure 'max server memory (MB)', 28000 
sp_configure 'remote login timeout', 300 
go 
reconfigure with override 
go 

を、私はSQLコードの各行の長所と短所を評価しようとしています。 17月 - 2016年14時19分IST上

編集:私は言及している

ほとんどのMicrosoftのリンクは以下の通りです:

https://msdn.microsoft.com/en-us/library/ms178067.aspx

https://msdn.microsoft.com/en-IN/library/ms175136.aspx

編集日:2016年5月23日11:15 IST

私はここでのフィードバックと私の最後からのさらなる調査に基づいて 'MAX SERVER MEMORY'を設定しました。私は顧客に推論を提供しました。 ここで提供されているビューと回答に基づいて、他の2つのクエリについても推論を提供しました。 ご協力いただきありがとうございます。私はこの質問を顧客からの入力の後に更新する。

+2

テストサーバーでテストを実行し、結果がどのようなものかを確認しない限り、運用サーバー上で何も実行しないでください。あなたのライブサーバーの近くに行く前に練習し、研究してください。 –

+0

あなたのサーバーでクエリを試しましたか? – tharif

+0

@utility - ローカルシステムでクエリを試しました。私は決定的なものに気付かなかった。 – Ankush

答えて

0

は、クエリは、すなわちタイムアウトなし

sp_configure 'remote query timeout', 0 

enter image description here

この値は、データベースエンジンが受信したクエリには影響しません、0にクエリタイムアウトを設定すると以下の通りです。タイムアウトを無効にするに は、それがキャンセルされる まで、クエリが待機する値を0に設定します。 SQL Serverのインスタンスが使用するSQL ServerプロセスのためのSQL Serverの メモリマネージャによって管理されている(メガバイト)メモリの

sp_configure 'max server memory (MB)', 28000 

量。

sp_configure 'remote login timeout', 300 

サーバーにリモートで接続するアプリケーションを持っている場合、我々は、上記のクエリを使用してタイムアウトを設定することができます。

注:

また、あなたはあなたのポストに示すように、コードを使用して、むしろ最大値と最小値を設定することができますSSMS(管理スタジオ)を介してサーバーのプロパティを設定することができます。

enter image description here

あなたは非常によく、これらのクエリを試すことができますが、オプトインしたい設定が作業しているハードウェアやアプリケーションの種類に依存します。

0

私は一般に、これらのステートメントはかなり馬鹿げていると言います。はい、真剣に。ラインによって

ライン:

ます。sp_configure 'リモートクエリタイムアウト'、0

は、クエリが中止する前に、無制限の時間を実行します。長時間実行されるクエリは受け入れられますが、これらのクエリは稀です(IIRCのデフォルトタイムアウトは30秒で99.99%のクエリを処理します)。この特定のクエリではまれにしかアプリケーションプログラマが適切なタイムアウトを設定できません。

ます。sp_configure '最大サーバーメモリ(MB)'、28000

を設定し、最大サーバーメモリ28ギガバイトまで。まあ、それはナンセンスです - DBAはインストール時にそれを賢明な値に設定していたはずなので、DBAが無能でなければ必要ありません。約28GBの意味があるかどうか私はコメントすることはできません。

ます。sp_configure 'リモートログインタイムアウト'、リモートログイン300秒間300

タイムアウト。 30秒のデフォルトはすでに十分です。サーバーが正常で、数秒以内にログインを処理しないというシナリオを考えると、重大な問題があります。

この全体のバッチが意味を成す場所は、どこかの残酷な無能さに基づいて、ほとんどのサーバーが過負荷で死んでいるサーバーです。管理者(64GBのRAMマシンはSQL Server用に2GBのみを使用するように設定されています)またはプログラマー(インデックスなし、サーバーが過負荷から壊れてしまうばかげた悪いSQL)のいずれかです。そこには、あまりにも頻繁に見えました。

そうでない場合はタイムアウトが本当に少し意味をなさない。

+0

多くの企業は専門のDBAなしで稼動します。また、ホスティング企業を使用する場合は、DBAを持っていなくても基本的にセットアップするだけです。あなたの顧客/クライアントが自己ホスティングしている場合は、DBAがないかもしれないので、値が設定されていないと「DBAは無能です」。まあ、それがどうやってできるのかという理由はたくさんあります。 –

+0

@ AllanS.Hansen - 現在、SQL Serverの既定の設定が使用されています。私はこのスクリプトを示唆された変更として受け取りました。 DBAは存在しません。 – Ankush

+0

強い言語....しかし、関係なく、より多くの情報を提供する必要があります。メモリに関して:1.サーバーのRAM容量はどのくらいですか? 2.サーバーはSQL Serverのみを実行していますか、それとも他のものを実行していますか? –

0

「リモートクエリタイムアウトは、」リモートクエリタイムアウトする前に、どのくらいの時間を設定します。 "リモートログインタイムアウト"は、ログイン試行がタイムアウトするまでの時間を設定します。ここで設定

値が特定の条件(例えば低速、高遅延ネットワーク)に意味を作ることができます。

「最大サーバーメモリ」は、異なるです。これは非常に便利な設定です。パフォーマンス上の問題を避けるために、ほとんど常に設定する必要があります。どのような価値があるかは、サーバー上にどれくらいのメモリが全体として存在し、他のアプリケーションやサービスがその上で実行されているかによって異なります。 32 GBのメモリを搭載した専用サーバーの場合、この値は正しいと言えます。 prod環境の1レプリカ:これらの

なし実際にテスト環境でテストすることはできなかったあなたは1を持っていない限り、私は、怖いです。

+0

はテストできないことに同意するものはありません。本番環境のレプリカはありません。 – Ankush

+0

少なくとも運用サーバーのRAM容量と、SQL Serverのみを実行しているかどうかを確認する必要があります。少なくともこれは重要な情報です。それは "私のスーツケースはどれくらい大きいのですか?"知るか?あなたはどれくらい滞在していますか、あなたは何をしていますか、それは寒くて暑いですか? –

関連する問題