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

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

2
関数/ストアドプロシージャの作成時のスキーマチェックの無効化
SQL Server 2008 R2データベースへの変更を実行するプロセスを自動化しようとしています。配置したプロセスは、ストアドプロシージャと関数を削除して再作成し、スクリプトを実行してテーブル/列/データを変更します。残念ながら、スクリプトの1つでは、最初に機能の1つを配置する必要があります。しかし、最初にテーブル/列/データ変更スクリプトから追加される列に依存するため、最初にすべてのストアドプロシージャ/関数の変更を実行することはできません。 SQL Serverが関数/ SPの定義で使用される列を検証せずにストアドプロシージャと関数を実行できるかどうか疑問に思っていましたか?探してみましたが、これを有効にする条件またはコマンドが見つかりませんでした。

1
SQL Serverボックスのボリュームを拡張するにはどうすればよいですか?
ここにあるシステム運用者(またはこの経験を以前に経験したことのある人)に対する質問があります。 私の会社は、運用中の既存のSQL Serverボックスに追加のディスク領域を割り当てたいと考えています。ボリュームの拡張(ディスクの管理の「ボリュームの拡張...」)をオンラインで実行できるのか、またはSQL Serverサービスをシャットダウンする必要があるのか​​疑問に思っています。 これを行うためにSQL Serverサービスを停止する必要がある理由、または日中にこの操作を実行するだけでよいのですか? システム仕様が関連する場合に備えて。これは、Windows 2012 R2およびSQL Server 2008 R2を実行する実際のボックス(仮想化なし)です。 ありがとう!

4
テーブルフィールドを削除した後のディスク領域の要求
私はSQL 2008 r2を実​​行していますが、非常にアクティブで使用されているテーブルにntextフィールドを追加するまで、データベースは過去3年間正常かつ高速に動作していました。このテーブルのサイズが非常に大きくなっているため、サーバースペースを使い始めています。 何年も高速に動作していたため、dbのインデックス付けを失いたくはありませんし、断片化の支出も受けたくないのです。 そのフィールドとそのすべての値を削除することにしました: ntextフィールドとそのすべての値を削除し、インデックスを削除せず、縮小せずに、dbのパフォーマンスを失うことなくスペースを解放する方法はありますか? 過去5か月のサイズ拡張を示すために、dbサイズクエリ出力を添付します。

6
SQL Server 2008 R2のインストール中に「指定されたアカウントは既に存在します」エラーを解決する方法
最近、Visual Studio 2012とSQL Server 2008 R2を新しい開発マシンにインストールするときに問題が発生しました。私のインストールシーケンスはVisual Studio 2012で、SQL Server 2008 R2をインストールしました。 SQL Serverのインストール中にエラーが発生しました: 指定されたアカウントは既に存在します。 私はこの問題を解決するために一日を費やしました。

2
データベースのデフォルトの照合順序を変更したときのLatin1_General_BINのパフォーマンスへの影響
データベース照合をに設定して、Latin1_General_BIN文字列比較で大文字と小文字を区別します。これはパフォーマンスに影響しますか?データベースのDMLまたはDDL操作に影響はありますか?データベースは既にテーブルとともに存在しています。

4
SQL Server 2008 R2エラー:15023、ユーザー、グループ、またはロールは既に存在します
権限の問題があるテストデータベースがあります。 レポートデータベースにアクセスできず、アプリケーションのヘルプドキュメントに次のことが記載されています。 Resolution: 1. Launch the SQL Server Management Studio and connect to the database server(s) hosting the Vision and Reporting Server databases. 2. Expand the security folder. 3. Select logins and right click on the <username> user and choose properties. 4. Click the User Mapping tab 5.Make sure the …

1
SQL Server nvarchar(max)vs nvarchar(n)はパフォーマンスに影響します
これはSQL Server 2008 R2 SP2です。2つのテーブルがあります。どちらも同じです(データとインデックス)。ただし、最初のテーブルにはVALUE列がnvarchar(max)あり、2番目のテーブルにはと同じ列がありnvarchar(800)ます。この列は、非クラスター化インデックスに含まれています。また、両方のテーブルにクラスター化インデックスを作成しました。インデックスも再構築しました。この列の最大文字列長は650です。 両方のnvarchar(800)テーブルに対して同じクエリを実行すると、一貫して高速になり、何倍も高速になります。確かに、「varchar」の目的を無効にしているようです。テーブルには800,000行以上が含まれます。クエリでは、約110,000行(これが計画の推定値)を確認する必要があります。 io統計によると、lobの読み取りはないため、すべてが並んでいるように見えます。実行計画は同じですが、2つのテーブルのコストの割合にわずかな違いがあり、推定行サイズが大きいnvarchar(max)(91バイト対63バイト)ことを除いて。読み取り回数もほぼ同じです。 なぜ違いがあるのですか? =====スキーマ====== CREATE TABLE [dbo].[table1]( [ID] [bigint] IDENTITY(1,1) NOT NULL, [ProductID] [bigint] NOT NULL, [ProductSkeletonID] [bigint] NOT NULL, [Value] [nvarchar](max) NOT NULL, [IsKeywordSearchable] [bit] NULL, [ValueInteger] [bigint] NULL, [ValueDecimal] [decimal](18, 2) NULL, [ValueDate] [datetime] NULL, [TypeOfData] [nvarchar](20) NOT NULL, CONSTRAINT [PK_table1] PRIMARY KEY …

3
SAN環境でSQLインデックスを最適化することに利点はありますか?
SQLサーバーはSAN上にあります。多数のOLTPデータベースが含まれており、一部には1m以上のレコードを含むいくつかのテーブルがあります。 私たちは、実行されているオラHallengrenの索引メンテナンススクリプトを毎週、そしてそれは、数時間ごとに実行されます。断片化のしきい値に基づいて、スクリプトはインデックスを再編成または再インデックス化します。インデックスの再作成中にログファイルが膨大になり、ログ配布中に帯域幅が過剰に消費されることが確認されています。 次に、ブレント・オザールからの記事があります。彼はSQLインデックスについて心配するのをやめると言っています。 ハードドライブは、同時にドライブリクエストを行っている他のサーバーと共有されるため、ドライブは常にデータを取得するためにあらゆる場所でジャンプします。インデックスの最適化は、無意味な忙しい作業です。 この質問をググリングすると、さまざまな意見につながりますが、ほとんどが短すぎるか弱すぎると思われる議論でサポートされています。暫定的な計画では、メンテナンススクリプトの断片化のしきい値を調整して、インデックスの再作成よりもはるかに頻繁に再編成するようにします。 最終的な判定は何ですか?毎週のメンテナンスジョブの実行に伴う負担を考慮して、SANでSQLインデックスを最適化することは価値がありますか?

2
SQL Server-成長するデータベースファイルのベストプラクティス
私は、SQL Server 2008 r2のデータコレクターを介して2週間、ファイルの増加を監視しています。データベースは、約35(MB)/日で一貫して成長しています。DBは初期サイズの2 GBにまだ達していません。 DBファイルの自動拡張は5MBに設定されています。別のアプローチを試してみたいので、提案やコメントを探しています。 毎週日曜日の夜1:30 AMに実行されるチューニングタスクがあります。タスクは: データベースの整合性を確認する ログファイルを圧縮する-(ログモードがシンプルなので、これは問題ありません) データベースの縮小 インデックスの再編成 インデックスを再構築 統計を更新する 履歴をクリーンアップする 毎週の調整計画にさらに2つのステップを追加したいと思います。 使用領域が特定のしきい値または合計サイズに達した場合、データベースファイルを500 MB増やします。 使用されているスペースが合計サイズの特定のしきい値に達すると、ログファイルを250 MB(縮小後)増やします。 オフラインの時間に成長の負担をかけることにより、高負荷時の自動成長イベントの数を減らしてパフォーマンスを向上させたいと考えています。 自動拡張ファイルに関する質問が2つあります。 ファイルの成長ステップを配置する最適な場所は、現在のステップの前か後ですか? を使用しALTER DATABASE|MODIFY FILEてファイルを拡大すると、どうすれば判断できSpaceUsedInFile >= (TotalFileSpace-@AllowanceThreshold)ますか?

2
SQL Server 2008-パーティション化とクラスター化インデックス
ですから、私のdb設計を完​​全に制御することはできません。そのため、このシナリオの目的のために現在のシステムの多くの側面を変更することはできません。 デザインの側面をどのように再考すべきかについてのコメントはおそらく正しいが、役に立たない:) 私は非常に大きなテーブルがあり、幅が約150フィールド、行が約600mあり、多数のプロセスを駆動します。これはデータウェアハウスの状況にあるため、スケジュールされたロードプロセス以外では更新/挿入が行われないため、インデックスが大量に作成されます。 このテーブルをパーティション分割しようとする決定が下されており、パーティション分割されたテーブルのインデックス作成に関して懸念があります。私はパーティション分割の経験がないので、入力やリンクを歓迎します。私はBOLまたはmsdnで私が特に望んでいるものを見つけることができませんでした。 現在IncidentKey、varchar(50)一意であるとは呼ばないフィールドにクラスターを作成します。1〜100個の同じレコードを持つことができますIK(コメントは不要です)。古いIncidentKeyレコードで新しいデータを取得することが多いため、どちらもシーケンシャルではありません。 IncidentDateパーティションが正しく機能するためには、パーティション化フィールドをクラスター化インデックスキーに含める必要があることを理解しています。そうなると思っていますIncidentKey, IncidentDate。 問題は、「新しい」パーティションのレコードがクラスター化インデックスの「古い」パーティションのレコードの前にある場合、クラスター化インデックスの仕組みはパーティションテーブルの2パートキーでどのように機能するかです。 たとえば、5つのレコードがあります。 IncidentKey Date ABC123 1/1/2010 ABC123 7/1/2010 ABC123 1/1/2011 XYZ999 1/1/2010 XYZ999 7/1/2010 新しいレコードを取得する場合ABC123, 2/1/2011は、クラスター化インデックスのBEFORE にある必要がありXYZ999, 1/1/2010ます。これはどのように作動しますか? 断片化とポインターを想定していますが、デュアルパートキーを持つパーティションテーブルの非パーティションクラスター化インデックスの物理ストレージと構成に関する情報が見つかりません。

4
SQL Server 2008 R2データベース内のすべての孤立ユーザーを「自動修正」する簡単な方法はありますか?
以下を使用して、孤立した単一のSQLユーザーをログインに修正するのはかなり簡単です。 EXEC sp_change_users_login 'Auto_Fix'、 'user' これをスクリプト化することはできますが、特定のデータベース内のすべての孤立ユーザーを自動的に修正しようとする既存のストアドプロシージャはありますか

1
このクエリを実行するには、リソースプール 'internal'にシステムメモリが不足しています
運用サーバーの1つがログのエラーを報告しています エラー:701、重大度:17、状態:123。 このクエリを実行するには、リソースプール '内部'にシステムメモリが不足しています。 このエラーを検索しましたが、バグであり、Service Pack 2にホットフィックスがあります。これらはサーバーの詳細です。 Microsoft SQL Server 2008 R2(SP2)-10.50.4000.0 Standard Edition(64ビット) プロセッサー数:24(2つのNUMAノード、それぞれ12コア) メモリ:24 GB RAMがSQL Serverに割り当てられています。 クエリバッチロード/分:5000以上 私の質問は なぜこのエラーが発生するのですか? それは深刻な問題ですか? どうすれば解決できますか? メモリステータスの編集: MEMORYBROKER_FOR_RESERVE (internal) Pages ---------------------------------------- ---------- Allocations 200362 Rate 4510 Target Allocations 200362 Future Allocations 588626 Overall 2521497 Last Notification 0 MEMORYBROKER_FOR_STEAL (internal) Pages ---------------------------------------- ---------- …

6
大量のデータの行間の違いの詳細を照会する
300を超える列を持つ大きなテーブルがいくつかあります。私が使用しているアプリケーションは、セカンダリテーブルに現在の行のコピーを作成して、変更された行の「アーカイブ」を作成します。 些細な例を考えてみましょう: CREATE TABLE dbo.bigtable ( UpdateDate datetime, PK varchar(12) PRIMARY KEY, col1 varchar(100), col2 int, col3 varchar(20), . . . colN datetime ); アーカイブ表: CREATE TABLE dbo.bigtable_archive ( UpdateDate datetime, PK varchar(12) NOT NULL, col1 varchar(100), col2 int, col3 varchar(20), . . . colN datetime ); で更新が実行される前dbo.bigtableに、行のコピーが作成されますdbo.bigtable_archive、次にdbo.bigtable.UpdateDate現在の日付で更新されます。 したがってUNION、2つのテーブルをまとめてグループ化するとPK、変更のタイムラインが作成されます。UpdateDateます。 次の形式で、並べUpdateDate替え、グループ化、行間の違いを詳細に説明するレポートを作成しPKます。 …

2
非ASCII文字を確認する方法
VARCHARフィールドに非ASCII文字が含まれているかどうかを確認する最良の方法は何ですか? CHAR(1)スルーCHAR(31)とCHAR(127)スルーCHAR(255)。 使用PATINDEXしてみましたが、次の問題に遭遇しました。 低い範囲のチェックは正常に機能しました。 SELECT * FROM mbrnotes WHERE PATINDEX('%[' + CHAR(1)+ '-' +CHAR(31)+']%',LINE_TEXT) > 0 私のデータには0x1Eのレコードが3つあり、3つすべてが返されました。 しかし、上の範囲だけをチェックすると: SELECT * FROM mbrnotes WHERE PATINDEX('%[' + CHAR(127)+ '-' +CHAR(255)+']%',LINE_TEXT) > 0 テーブル内のすべてのレコード(テーブルカウント170737および返されたカウント170735)に近い値を返します。この範囲の値がデータにないため、レコードが返されなかったはずです。

2
ベンダーは、ビジネスアプリケーションの5分ごとにMSDBジョブを実行したい
両方のDBがSQL Serverインスタンスに存在する2つの異なるアプリケーションを150以上の他のDBと統合しようとするサードパーティベンダーがあり、2つの異なるアプリケーションを5分ごとに「同期」するMSDBジョブを作成します。毎分実行したかった)。 私の最初の予感は、代わりにWindowsのスケジュールされたジョブ、または恐らく恐ろしいトリガー(通常、このような状況に頼る)を使用して、アプリケーション層で何らかの方法でこれを行う必要があるということです。 MSDBジョブをできるだけDBAタスク用に予約しておくと、混乱が減ります。また、このような非常にアクティブなジョブのジョブ履歴を表示すると、MSDBのクエリが遅くなります。バックアップ履歴などのより重要なもの)。しかし、再び、私の好みが間違っている可能性があり、MSDBのアプリケーション層にいくつかのスペースを確保し、袖をまくり、ジョブ履歴の問題を修正する必要があります。バックアップなどの重要なもの(またはハイパーアクティブなジョブエントリをパージ)。 私が抱えているもう1つの問題は、GUIを介してアップグレードを実行するときに、DBに対してのみ「dbo」権限ではなく、このベンダーに「sysadmin」権限を与える必要があり、ミッションクリティカルなインスタンスを爆破しないことを願っていますDBは(統合の欠点の1つ)です。 私は、私たちが素敵をプレイしていないすべてのベンダーを置く別の「単離された」インスタンス上に置くことができますね、しかし、我々は(新しいSQLインスタンスを指すようにアプリケーションを再設定する必要がため息この場合には、残念ながら簡単ではないが)。 ベンダーは、トリガーがどれほど悪いかについての私の懸念を既に押し返しました。それで、私はこれを少し「グーグルで検索」し、空になりました。これは悪い考えであり、私はそれを参照できるという「信頼できる」リンクを誰かが見ましたか?または、彼らのアプローチを採用すべきですか? 助けを求める前にSQLフォーラムに投稿したことがないと思うので、うまくいけば私の問い合わせは適切に組み立てられます。 編集:SQL Server 2008 Enterprise R2 x64 SP1を実行しています(バージョンについて言及するのを忘れていたことを指摘してくれてありがとう!)うーん、できれば、新しいバージョンに移行するときにMSDBアップグレードスクリプトを変更する必要はありません。 御時間ありがとうございます!リッチ

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