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

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

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
SQL Serverレプリケーションを実装する時が来たことを示す客観的要因は何ですか?
データベースの高いパフォーマンスとメンテナンスの容易さのバランスをとろうとしています。レプリケーションを使用してパフォーマンスを向上させることを検討しています。SSRSレポートをトランザクションデータベースとは物理的に別のデータベースにレプリケートすることです。ただし、レプリケーションを有効にすることには、開発者の観点から多くの欠点があります。 スキーマの変更が困難になります 自動統合/ビルドサーバーを妨害する SQLソース管理の実装が難しくなっているようです 私の質問は次のとおりです。これらの欠点を考慮して、レプリケーションに移行する時期がいつになると思いますか 追加の複雑さが利益を正当化するかどうかをどのように決定しますか? 以前に使用したことがあるので、設定は問題ありません。これは、それを有効にするかどうかを決定することに関するものです。他の人がレプリケーションで観察したいくつかのオブジェクトパフォーマンスメトリックを探しています。 もちろん、最善のことは、私たち自身のサーバーでいくつかのシミュレートされた負荷テストを行い、それを自分で理解することですが、私はそこにいくつかの一般的なガイドラインがあることを望んでいます。

2
ユーザー定義のテーブルタイプを含むsp_executesqlが正しく動作しない
問題:sp_executesqlへのパラメーターとしてユーザー定義のテーブルタイプに既知の問題がありますか?回答-いいえ、私はばかです。 スクリプトを設定する このスクリプトは、テーブル、プロシージャ、ユーザー定義のテーブルタイプをそれぞれ1つ作成します(制限付きのSQL Server 2008以降のみ)。 ヒープの目的は、はい、データがプロシージャに入ったという監査を提供することです。制約はなく、データの挿入を妨げるものはありません。 このプロシージャは、ユーザー定義のテーブルタイプをパラメータとして受け取ります。プロシージャが行うことはすべて、テーブルに挿入することです。 ユーザー定義のテーブルタイプも同様に単純で、単一の列です 私は以下に対して実行しました、11.0.1750.32 (X64) そして、10.0.4064.0 (X64)はい、私はボックスにパッチを当てることができることを知っています、それを制御しません。 -- this table record that something happened CREATE TABLE dbo.UDTT_holder ( ServerName varchar(200) , insert_time datetime default(current_timestamp) ) GO -- user defined table type transport mechanism CREATE TYPE dbo.UDTT AS TABLE ( ServerName varchar(200) ) GO -- stored …

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を再インストールする以外に、回復方法に関する提案はありますか?

5
SQL Serverストアドプロシージャはデータ結果をキャッシュしますか?
これは友人から聞いたことがありますが、これが本当かどうかは調査していません。 実行されたクエリのデータ結果がキャッシュに保存されるのは本当ですか? つまり、次のようなストアドプロシージャがあるとします。 SELECT * FROM USERLIST ...結果(この場合はユーザーのリスト)がキャッシュに保存されるのは本当ですか? また、私がこれらを持っている場合: SELECT * FROM USERLIST WHERE user="user" SELECT * FROM USERLIST WHERE user="userzzz" (user / userzzzがパラメーターとして渡されます)、データベースキャッシュに2つの異なる結果を格納することは正しいですか。 そうは思いませんが、専門家の確認をお願いします!

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

4
SQL Server 2008インスタンスのRAIDレベルの組み合わせを選択する
1つのIBM 3400サーバーを最初から再構築します。このサーバーは、Windows 2008 R2で実行されているSQL Server 2008インスタンス専用です。 新しいRAID構成を作成します。マシン内部に6つのSCSI 73 GBドライブとIBM ServerRAID 8Kコントローラーがあります。RAIDレベルを設定する良い方法は何でしょうか?コントローラーに2つ、3つ、または1つのフィールドを配置する必要がありますか? 次のいずれかの解決策を検討しています。 すべてのディスクを使用して、RAID 10プールを作成します。 RAID 1eプールに4つのディスクを使用し、それを使用してデータベースデータとOSを格納し、他の2つのディスクをRAID 0プールに使用して、それを使用してデータベースログを格納します。 他のいくつかの組み合わせ。 ストライプユニットサイズが大きいほど良いですか? このサーバーは、複製されたデータベースのサブスクライバーになります。その主なタスクは、レプリケーションエージェントのみが書き込みを行う、レポートとデータの取得です。データベースのサイズは約90 GBです。

1
物理データベースからクラウドデータベースへの移行
varchar(MAX)FILESTREAM BLOBSでのフルテキスト検索などの高度な機能を利用して、Microsoft SQL Server 2008R2で作成された物理データベースをSQL Azureに移動するとどうなりますか? どのようなアーキテクチャの変更が必要ですか?この移行にはどのような手順が含まれますか?SQL Azure Migration Wizzardは、単に自動的に移行を行う魔法のツールではありません。移行ツールで修正できず、「手動」で解決する必要がある互換性の問題は何ですか?

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

3
含まれる列とフィルターされたインデックス
現在、tb_tranfersという名前のテーブルを使用しています。このテーブルには4,000万行あり、サイズは最大26 GB(11 GBのデータ、15 GBのインデックス)です。 行の10〜15%が一時削除された行です(DeletedDateはnullではありません)。アプリケーションはDeletedDateがnullである行のみを使用します。このテーブルへのすべてのクエリには、その効果に対する句が含まれます。 このテーブルには15のインデックスがあります。欠落しているインデックスDMVには、削除された日付を含む列としてインデックスを作成するための提案が含まれています。 WHERE DeleteDdate IS NULL11個の整理されていないインデックスすべてにフィルター処理されたインデックスを使用することは役に立ちますか?または、DeletedDate列をインクルード列として持つ方が良いでしょうか?

2
個別のスキーマを使用すると、SQL Server 2008のパフォーマンスにどのような影響がありますか?
SQL Server 2008データベースで、目的の異なるオブジェクトに個別のスキーマを使用したい。今のところ、テーブルやストアドプロシージャの目的を示すためにかなり気の遠くなるような命名規則を使用しており、プレフィックスは、一意の名前の始まりを確認する前に5つまたは6つのxharacterをスキャンする必要があることを意味します。UIを駆動するためだけに使用されるテーブル(メニュー、ユーザー別の役割など)と、ディメンションテーブルとファクトテーブルなどのスキーマに別々のスキーマを使用したいと思います。 私の質問は、複数のスキーマ(スキーマ?)を使用することによるパフォーマンスへの影響はありますか?

3
SQL Server 2008 / R2復旧モデル
特定のサーバー上のほとんどすべてのデータベースは完全復旧モデルを必要とせず(トランザクションログのバックアップは行いません)、デフォルトでは常にデータベースを作成して単純復旧モデルを指定する必要があります。 多くの場合、特定の実際的な理由により、SSMSを使用して多くのデータベースが作成されます。ただし、ミスが発生する可能性があり、オペレーターは単純復旧モデルの指定を忘れることがあります。これにより、数日後、切り捨てられなかった60 GBのログファイルが3つまたは4つあるために、ボックスがディスク領域に苦しむ「驚き」が生じます。 シンプルリカバリモデルを新しいデータベースのデフォルト設定にするには、modelデータベースでリカバリモデルを構成します。しかし、これが推奨されますか?これを行うと、将来的に戻って何らかの形で私に噛まれる可能性がありますか?

4
データベース設計におけるフィールドサイズの過大評価
文字列であるテーブル用のフィールドがいくつかありますが、現時点では、ほとんどのフィールドサイズにかなりの文字数制限があります。たとえば、ストリート名は100文字です。大きなフィールドサイズを使用するとペナルティはありますか?たとえば、このフィールドの制限を30文字に変更した場合、サイズによってパフォーマンスが向上するか、効率が向上しますか?収縮の候補となる可能性のある約50のフィールドがあります。 あなたの提案をありがとう。
11 sql-server 

2
@table_variableまたは#temp_table
129列の大きなユーザー定義のテーブル型変数があります。このテーブル変数に一度に約2000〜3000個のレコードを格納し、それをさまざまなストアドプロシージャと関数に渡して、追加のデータを取得して変更を加えます。これらの追加データと新しい変更は、同じタイプの新しいテーブル変数に格納され、OUTPUTパラメーターを介してソースストアドプロシージャに返されます。(これは、テーブルタイプのパラメーターをとしてのみ渡すことができるためREADONLYです。) これは私の疑似コードです: SP1 @tmp tableType { INSERT @tmp EXEC SP2 (@tmp) INSERT @tmp EXEC SP3 (@tmp) } @table_variableまたはを使用する必要があり#temp_tableますか?

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