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

MicrosoftのSQL Serverは、複数のデータベースへのマルチユーザーアクセスを提供するサーバーとして実行されるリレーショナルデータベース管理システム(RDBMS)です。このタグは2005バージョンの質問用です

7
完全バックアップ後にトランザクションログのバックアップサイズを縮小するにはどうすればよいですか?
Sql Server 2005インスタンスで実行するように設定された3つのメンテナンスプランがあります。 毎週のデータベースの最適化とその後の完全バックアップ 毎日の差分バックアップ 1時間ごとのトランザクションログバックアップ 1時間ごとのログバックアップは通常、アクティビティのレベルに応じて数百Kb〜10 Mbであり、1日の差分は通常、週末までに約250 Mbに増加し、1週間ごとのバックアップは約3.5 Gbです。 私が抱えている問題は、フルバックアップ前の最適化により、通常の状態に戻る前に、次のトランザクションログバックアップがフルバックアップ(この場合は8Gb)のサイズの2倍を超えるように見えることです。 以外にBACKUP LOG <DatabaseName> WITH TRUNCATE_ONLY、そのログバックアップのサイズを小さくする方法、または最適化がトランザクションログにまったく記録されないようにする方法はありますか?

7
DBCC SHRINKFILEの進捗を確認する方法は?
DBCC SHRINKFILE声明の進捗状況を知る方法はありますか? ここに私がそれを実行していた方法があります dbcc shrinkfile( 'main_data'、250000) 上記のステートメントをSQL Server 2005と2008の両方で実行しています。 [更新] 進行状況と実行中のテキストを確認するために実行したクエリを次に示します。 select T.text, R.Status, R.Command, DatabaseName = db_name(R.database_id) , R.cpu_time, R.total_elapsed_time, R.percent_complete from sys.dm_exec_requests R cross apply sys.dm_exec_sql_text(R.sql_handle) T

3
SQL Serverのタイムアウト保存テーブル
SSMSを使用して、SQL Server 2005で多くのデータを含むテーブルに列を追加しようとしています。 そこで、テーブルを参照し、[変更]を選択して、新しい列を追加します。次に、[保存]を押すと、次の警告が表示されます。 大量のデータを含むテーブルへの定義変更の保存には、かなりの時間がかかる可能性があります。変更の保存中は、テーブルデータにアクセスできません 私はそれでいいです、DBはオフラインであり、私は世界中に常にいるので、はいを押します。 ただし、操作は次のメッセージで約30秒後にタイムアウトに進みます。 テーブルを変更できません。タイムアウトになりました。操作が完了する前にタイムアウト期間が経過したか、サーバーが応答していません。 次に、[OK]を押すと: ユーザーが保存ダイアログをキャンセルしました(MS Visual Database Tools) わかりません。SSMS接続ダイアログと[ツール]-> [オプション]-> [クエリ実行]-> [SQL Server]の両方で、実行タイムアウトを0(無限)に設定しました。無視された場合、実行タイムアウトを設定するポイントは何ですか? ここで使用されているタイムアウト値とその設定方法を知っている人はいますか?

6
SQL Serverデータベースの照合順序を変更するにはどうすればよいですか?
すべてのデータベースを単一の照合-Latin1_General_CI_AS(標準照合)で標準化しようとしています。SQL_Latin1_General_CP1_CI_ASにあるデータベースがいくつかあります。 ALTER DATABASEを使用してデータベースの照合順序を変更できることは知っていますが、それは新しいオブジェクトにのみ影響します。私の理解では、既存の列を変更する唯一の方法は、すべてのテーブルの各列でALTER COLUMNを実行することです-それを行うには、すべてのインデックスを削除して再作成する必要があります。 私はそれがこのようなものになると思います: DROP INDEX indexname ON tablename GO ALTER TABLE tablename ALTER COLUMN columname varchar(50) COLLATE Latin1_General_CI_AS NULL GO CREATE CLUSTERED INDEX indexname ON tablename (columname ASC) データベース全体のすべてのvarchar、char、text、nvarchar、nchar、およびntext列に対して繰り返します。これは膨大な SQLスクリプトになります。 これを行う簡単な方法はありますか、それを行うSQLスクリプトの作成を自動化する方法を誰かが提案できますか?

8
SQL Serverがバックアップを復元するとエラーが発生する
dev(Windows Server 2008上のSQL Server 2005)にprod(Windows Server 2003上のSQL Server 2000)に移動する必要があるデータベースがあります。私のプロセスは次のとおりです。 開発者にログインし、SQL Server Management Studioを開きます データベースを右クリック| タスク| バックアップ。すべてのデフォルトオプションを保持します(フルバックアップなど) .bakファイルをローカルにprod(ネットワークドライブなし)に移動し、prodにログインして、SQL Server Enterprise Managerを開きます。 [データベース]ノードを右クリックします| すべてのタスク| データベースを復元します。 データベースとして復元を変更して、同じデータベース名を反映させます。 「デバイスから」ラジオボタンをクリックします。「デバイスの選択」をクリックします [復元元:追加...]をクリックし、.bakファイルを参照します(小さい-6MBのみ) これでデータベースを復元する準備ができたので、[OK]をクリックすると、次のエラーが表示されます。 「デバイス「E:... bak」のメディアファミリの形式が正しくありません。SQLServerはこのメディアファミリを処理できません。RESTOREDATABASEは異常終了します。」 このエラーはすぐに発生します。 私はこれのいくつかの異なるバリエーションを試しました-異なるdb名とログファイル名(元の場所)でdevマシンにdbを復元し、前にファイルへの同じ物理パスで空のデータベースを作成し、そこに復元しようとしましたprodにアップロードする前に、いくつかの異なる.bakファイルを作成し、それらが検証されていることを確認します。実際、.mdfファイルと.ldfファイルのディレクトリがprodに存在することは知っていますが、ファイル自体は存在しません。[OK]をクリックして復元する前に[オプション]タブに移動すると、次のエラーが表示されます。 エラー3241:デバイス 'E:... bak'のメディアファミリの形式が正しくありません。SQL Serverはこのメディアファミリを処理できません。RESTORE FILELISTが異常終了しています。 誰もが明るいアイデアを持っていますか?

7
SQL Server-DBをメモリに強制しますか?
SQL Server 2005 64ビットを実行する強力なWindows 2008 x64サーバー(4 x 4コアCPU、32GB RAM)があります。ページがメモリにキャッシュされるまでアクセスがやや遅い(6GB)が非常に重要なデータベースがあります(使用量は非常にランダムなI / Oであるため、特定のページがメモリとエンドユーザーにある確率は非常に低くなります)最初の遅さについて文句を言います)。ディスクは十分に高速(ローカル15K SAS)ですが、アプリはやや不格好に書かれていると思います(COTSソリューションです)。SQLServer 2005でメモリ内のデータベースを「強制」する方法があるかどうか疑問に思っていますベンダーによるので、まだキャッシュを埋める初期のブルースを避けるために、まだそれにアップグレードすべきではありませんか? 私の現在の方法は、スクリプト内の各テーブルからSELECT *を実行してメモリ内のデータページを取得しますが、一部のオブジェクト(インデックス、全文検索など)はこのメソッドによってキャッシュされません(およびスクリプトを変更してインデックスとキャッシュに適切なWHERE句を記述することは、複雑な海洋です)。


7
サーバーに実際に必要なRAMはどれくらいですか?
世界中にかなりの数のサーバーが展開されています。6 GBのRAMを搭載したSQL Server 2005 x64を搭載したWindows 2003 x64を実行しています。数年前にそれらを注文した男は、彼が何をしていたかを本当に知らなかったので、箱は最高の(または許容できる)構成を持っていません。 ボックスはかなり一貫してメモリ不足になり、ページングファイルを使用してしまい、すべてが遅くなります。通常、コミット料は5.8GBであり、誰かが集中的な作業(レポートの実行など)を行う必要がある場合、その数は屋根を通り過ぎます。 私はより多くのメモリを注文する力を得ようとしましたが、私は大きな反対を得ています(たとえば、ソフトウェアのパフォーマンスを向上させる、これらすべてのサーバーのコストが高すぎる、またはボックスに十分なメモリがないことを証明するなど) ..)。 最終的により多くのメモリを注文できるように、技術者以外に提示できるボックスに必要なRAMの量に関するガイドライン(または公式)はありますか?

2
SQL Server 2005のどのデータベースがどのくらいのRAMを使用しているかを調べる
私の友人が今日、私に(彼の興奮した顧客を落ち着かせようと)尋ねました。どのデータベースがどの時点で(サーバーのRAMに)どのくらいのメモリを使用しているかをSQL Server 2005で確認できます。 それはまったく可能ですか?もしそうなら-どうやって?組み込みのSQL Serverツールを使用してこれを行うことはできますか、または追加のサードパーティオプションが必要ですか? 彼の顧客は、専用のSQL Serverマシンが突然、4 GBのRAMの200 KBを除くすべてを使用するために、動揺しました。これは本当に問題だとは思いませんが、この男は多かれ少なかれ一晩で起こったと主張しているので、彼はこのメモリ使用量の増加の原因を知りたいと思っています。 マーク

4
SQL Serverのインストール:32ビットですか、64ビットですか?
最近、DBサーバーの1つでOSのアップグレードを実行し、Server 2003からServer 2008に移行しました。DBMSはSQL Server 2005です。新しいWindowsインストールにSQLを再インストールしている間に、別のDBサーバーに行って設定の。 今、私はいつもこの2番目のサーバーはServer 2003 x64 + SQL 2005 x64(私が言われたものから)であると思っていましたが、今はこれについて疑問があります。今では実際には32ビットSQLだけであると思われますが、これを確認したいと思います。 詳細は次のとおりです。 OSは間違いなく64ビットです。 xp_msverPlatformとして示すNT INTEL X86 SELECT @@VERSION ショー Microsoft SQL Server 2005 - 9.00.4035.00 (Intel X86)... ただし、sqlservr.exeはtaskmgrで「* 32」と表示されませんが、実際に32ビットが主張されている場合、これがなぜなのか知っていますか?それにもかかわらず、x86プログラムファイルフォルダーが不足しているようです。 確認済みの64ビットインストールで同じチェックを行うと、予想される64ビットの読み取り値が返されます。これにより、このサーバーが32ビットでのみ実行されていることが証明できます。 さて、そうだとすると、この「32ビット」インストールで使用できるメモリ量について疑問が生じます。タスクマネージャーは、sqlservr.exeの3.5GBのメモリ使用量について報告します(サーバーの物理容量は16GBです)。AWEがまったく構成されていないため、SQLが単純に32ビットのアドレス空間を使用している場合、サーバーの使用率は大幅に低下します(OSは64ビットであることを思い出してください)。 この仮定は正しいですか? ハードウェアプラットフォームを完全に利用するには、サーバーに64ビットとしてSQLを再インストールする必要があると思いますが、現在は非常に生産されています。これは簡単な作業ではありません。AWEを正しく設定し、とりあえず設定する必要があるのではないかと思われます(これが悪い考えでない限り)。 この質問が少し曖昧/失われたことをおIびします。私はSQLの専門家ではなく、ここで何が起こっているのかを把握しようとしています。

2
SQL Server 2005/2008-複数のファイル/ファイルグループ-いくつですか?どうして?
私は心からデベロッパーです-しかし、時々、顧客はこれらの問題に対処するためのきちんとしたDBAを持っていません。 適切なサイズのSQL Serverデータベース(NorthwindまたはAdventureWorksよりも大きいもの、約2〜4 GBのデータとインデックスなど)を扱う場合の戦略/ベストプラクティスは何ですか-複数のファイル/ファイルグループを使用していますか? もしそうなら:いくつ?なぜ? 「すべてのための1つのファイルグループ」アプローチから離れるタイミングを決定するための基準は何ですか。 * database size? * database complexity? * availability / reliability requirements? * what else? 複数のファイルグループを使用する場合、いくつ使用しますか?データ用、インデックス用、ログ用 データのいくつか(いくつ)?あなたの選択の理由は何ですか-なぜあなたはその正確な数のファイルグループを使用するのですか:-) ヒント、ポインタ、考えをありがとう! 乾杯、マーク

4
「DbccFilesCompact」ステータスが「Suspended」になるのはなぜですか?
600GデータファイルでSHRINKファイルを実行しています。 現在、ステータスは「一時停止」として報告されsys.dm_exec_requests.percent_complete、DbccFilesCompactコマンドレポートの場合は実行されている(ただし非常に遅い) それが中断されている理由とそれをよりスムーズに実行する方法を確認する方法はありますか? FYI-ステータスをチェックするためのSQLクエリ select T.text, R.Status, R.Command, DatabaseName = db_name(R.database_id) , R.cpu_time, R.total_elapsed_time, R.percent_complete from sys.dm_exec_requests R cross apply sys.dm_exec_sql_text(R.sql_handle) T order by Command

6
SQL Server 2005から2008に移行する方法
SQL Server 2005データベースをSQL Server 2008に移行するにはどうすればよいですか? 2005データベースをバックアップし、2008年に単に復元するのと同じくらい簡単ですか?互換性の問題はありますか?SQL Serverレポートサービスはとにかく変更されますか? SQLサーバーをどのようにアップグレードしますか?

1
データベースをキャンセルしてオフラインにする
コンテキストメニューのコマンド>タスク>オフラインで、誤ってDBをオフラインにしようとしました。 プロセスは現在進行中であり、新しい接続を行うことはできません。 このプロセスをキャンセルするにはどうすればよいですか?

2
db_datareader / db_datawriterスキーマの所有権の割り当てを元に戻す方法は?
私が意味するSQL Serverログインを割り当てるには db_datareader db_datawriter データベースロール。しかし、お腹が痛くて疲れている瞬間に、そのユーザースキーマの所有権を誤ってユーザーに付与します。 現時点では、ユーザーがこれら2つの組み込みスキーマを「所有」することの概念的な意味を無視します。また、ユーザーがこれら2つのスキーマを所有している場合でも問題がある場合は、当面は無視します(たとえば、ユーザーを削除する場合は、組み込みのスキーマがそれに伴います)。 私の質問は、どうやって元に戻すのですか? 私は、ランダムに私のキーボードのキーを押すと、それが出てきました: スキーマの承認を変更:: [db_datareader] TO [db_datareader]F5 しかし、それは何もしませんでした。だから今は専門家に相談する時間です。 Microsoft SQL Server 2005-9.00.5057.00(Intel X86)Mar 25 2011 13:50:04 Copyright(c)1988-2005 Microsoft Corporation Standard Edition

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