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

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

4
すべて(1200万)のレコードを削除した後、SQL Serverの「空のテーブル」は遅いですか?
約150列のSQL Server 2008インスタンスがあります。以前、このテーブルに約1200万のエントリを追加しましたが、新しいデータセットに備えてテーブルをクリアしました。 しかし、空のテーブルの上に即座に実行されたかつてのようなことをコマンドcount(*)とselect top 1000では、SQL Management Studio今、実行に長い年月がかかります。 SELECT COUNT(*) FROM TABLE_NAME 0を返すのに11分以上かかりSELECT TOP 1000、空のテーブルを返すのに10分近くかかりました。 また、ハードドライブの空き領域が文字通り消えてしまったことにも気付きました(約100Gから20Gに減少)。間に発生した唯一のことは、私が実行した単一のクエリでした: DELETE FROM TABLE_NAME 世界では何が起こっているのですか?!?

4
SQL Server照合順序を変更する方法
サーバー全体と特定のデータベースのSQL Server 2008 R2 Express Default Collat​​ionを変更するにはどうすればよいですか? SQL Server Management Studioのビジュアルインターフェイスを使用してそれを行う方法はありますか?[サーバーのプロパティ]ウィンドウ(および対応する[データベースのプロパティ]ウィンドウ)では、このプロパティは編集できません。

2
tempdbの成長の原因となったSQLステートメントを見つける方法
サーバー(SQL Server 2008)のtempdbは、毎月数回500 GB以上に増加します。この問題の原因となったSQLステートメントを見つけることは可能ですか?問題は通常によって引き起こされていないcreate table #temp...; insert into #temp...かselect ... into #temp...が、複合体が結合します。 一部のtempdbファイルの初期サイズも、毎回自動的により大きな値に設定されます。それを防ぐ方法は? キャッシュされたプランがファイルのサイズ変更/縮小を妨げる場合があります。どちらがtempdbを保持しているかを見つける方法は?

7
長い列はパフォーマンスとディスク使用量にどのように影響しますか?
現在のプロジェクトでは、列を数文字だけ拡張する必要があることが頻繁に発生します。からvarchar(20)へvarchar(30)と上のようにします。 現実には、どれほど重要なのでしょうか?これはどの程度最適化されていますか?通常の「入力」フィールドに100文字、200文字、さらには500文字を許可した場合の影響は何ですか?メールには320文字しか使用できないため、OK-そこには十分な制限があります。しかし、200に設定した場合、それより長い電子メールアドレスは期待できないため、何を得ることができますか。 通常、テーブルには100.000行を超えることはなく、最大20または30個のこのような列があります。 現在SQL Server 2008を使用していますが、さまざまなDBがこの問題をどのように処理するかを知ることは興味深いでしょう。 影響が非常に小さい場合-予想どおり、この長距離パラノイアは実際には必要ではないと、DBAに納得させるために(リンクでバックアップされている?)良い議論を得るのに役立ちます。 そうである場合、私は学ぶためにここにいます:-)

3
Windows 2008R2上のSQL 2008R2の推奨ページファイルサイズ
このMicrosoftの記事-64ビットバージョンのWindows Server 2008またはWindows 2008 R2の適切なページファイルサイズを決定する方法は、64ビットWindows 2008およびWindows 2008R2のページファイルサイズを計算するためのガイダンスを提供します。これは間違いなく汎用サーバーでうまく機能します。Windows 2008 / R2 64ビットで実行されているSQL Server 2008R2のガイダンスは何ですか? メモリ内のデータがページファイルにほとんどヒットしないようにすると、SQLがデータを取得するためにディスクに2回ヒットする可能性があります。SQL Serverでは、メモリ内のデータがページファイルにヒットすることさえ許可していますか?私はを通じて狩りをしましたSQL Server 2008 R2のオンラインブック指導のためにまだページファイルの使用の一切の言及を発見していません。 潜在的な使用シナリオは次のとおりです。物理サーバーに64GBのRAMがある場合、64GBのRAM全体にページファイルが必要ですか?96GBのページファイルに対応する必要がありますか?これは、単一のファイルでは少し過剰に思えます。私は、Windowsがページファイルをメモリに結合して、RAM上のアプリをより簡単にスワップアウトしようとするのが常識であったことを知っていますが、それは本当ですか?ここでは64GB未満のページファイルでパフォーマンスが低下しますか?

6
sysadminアカウントが存在しないときにSQL Server 2008でユーザーにsysadminを追加する方法
この質問は、データベース管理者のStack Exchangeで回答できるため、Stack Overflowから移行されました。 7年前に移行され ました。 SQL Server 2008インスタンスを実行しています。残念ながら、テスト中にログインのsysadmin権限を選択解除しましたが、現在はそれを読み取ることができません(sysadmin権限がないため)。 SAを除き、インスタンスの他のsysadminアカウントはありません。 Windows認証のみを設定したので、レジストリのLoginModeを2にハッキングして、SQL認証を使用してSAとしてログインできるようにしました。これにより実際にログインモードがMixedに設定されますが、SAユーザーはデフォルトで無効になっており、sysadmin権限がないため、再度有効にすることはできません。 システム管理者を取得して通常のアカウントに再割り当てできるように、SAログインを有効にするにはどうすればよいですか?このレジストリ設定もありますか、それともmasterデータベースに保存されていますか?

2
ALTER TABLE CHECK CONSTRAINT
SQL Serverのオブジェクトエクスプローラーから、外部キー制約を選択してスクリプトを作成すると、次のコードが生成されます。 USE [MyTestDatabase] GO ALTER TABLE [dbo].[T2] WITH NOCHECK ADD CONSTRAINT [FK_T2_T1] FOREIGN KEY([T1ID]) REFERENCES [dbo].[T1] ([T1ID]) GO ALTER TABLE [dbo].[T2] CHECK CONSTRAINT [FK_T2_T1] GO 最後のステートメント「ALTER TABLE CHECK CONSTRAINT」の目的は何ですか?実行されるかどうかは問題ではないようです。既存の不良データでは失敗せず、新しいデータに制約が適用されることも変わりません。 ありがとう!

3
永続的な計算列のインデックスには、計算式の列を取得するためのキー検索が必要です
この質問は、データベース管理者のStack Exchangeで回答できるため、Stack Overflowから移行されました。 6年前に移行 。 私は単純に連結された列で構成されているテーブルに永続的な計算列を持っています、例えば CREATE TABLE dbo.T ( ID INT IDENTITY(1, 1) NOT NULL CONSTRAINT PK_T_ID PRIMARY KEY, A VARCHAR(20) NOT NULL, B VARCHAR(20) NOT NULL, C VARCHAR(20) NOT NULL, D DATE NULL, E VARCHAR(20) NULL, Comp AS A + '-' + B + '-' + C PERSISTED …

3
SQL Serverでスキーマを使用するためのベストプラクティスは何ですか?
SQL Serverスキーマの機能は理解していますが、ベストプラクティスは何ですか?確かに別のセキュリティレイヤーを提供し、データベース内のデータベースオブジェクトの論理的なグループ化を提供しますが、一般的なものは何ですか?私の経験では、多くの場合、カスタムメイドのスキーマがあまり利用されていません。これは典型的なものですか?カスタムスキーマを使用する頻度の低いシナリオですか?

2
「CONCAT」は認識される組み込み関数名ではありません
クライアントからSQL Server 2012で実行されていることが報告されましたが、最終的な配信の前にテスト用のテストクエリをいくつか配信しました。 「CONCAT」は、認識される組み込み関数名ではありません。 CONCAT()これは、SQL Server 2012で導入された新しい組み込み関数であり、すべて問題なく機能していることを理解していますが、「クエリを実行するユーザーは、 Transact-SQLを実行する権限があります。」したがって、クライアントには、PRODとは異なるバージョンのSQL ServerがDEVにインストールされている可能性が高いことを証明しています。 SELECT/EXECUTE組み込みスカラー値関数のアクセス許可を明確に拒否することに関する情報を見つけることができませんが、それは可能ですが、もしそうなら、ユーザーは同じエラーテキストを受け取りますか?

3
パーティションキーもプライマリキーの一部である必要がありますか?
主キーではない列に基づいてテーブルをパーティション分割していますか?今日、パーティション列を主キーの一部にする必要があるかどうかに関するいくつかの矛盾する情報を読みました。私の腸はノーと言うが、私は100%確信していない。だから質問... パーティション列はプライマリの一部である必要がありますか?どちらの方法がお勧めですか? パーティションキーのインデックスを作成する必要がありますか、それともDBMSが自動的にインデックスを作成しますか?

1
SQL Serverで「No Join Predicate」とはどういう意味ですか?
MSDN「Missing Join Predicate Event Class」は、「結合述語のないクエリが実行されていることを示しています」と述べています。 しかし、残念ながら、それほど簡単ではないようです。 たとえば、非常に単純な状況: create table #temp1(i int); create table #temp2(i int); Select * from #temp1, #temp2 option (recompile); テーブルにはデータがなく、警告もありませんが、明らかに結合述語はありません。 私はSQL Server 2005の(同じリンク、ちょうど他のサーバーバージョン)のドキュメントを見てみる場合は、余分な文章があります:「このイベントはの両側が1行以上のリターンに参加した場合にのみ生成されます。」これはなるだろう前の状況での完全な意味。データがないため、両側は0行を返し、警告を返しません。行を挿入すると、警告が表示されます。うんいいね。 しかし、次の混乱する状況のために、両方のテーブルに同じ値を挿入します。 Insert into #temp1 (i) values (1) Insert into #temp1 (i) values (1) Insert into #temp2 (i) values (1) Insert into #temp2 (i) values …

1
ユーザーにSQL Server SHOWPLAN権限を付与することにリスクはありますか?
この質問は、データベース管理者のStack Exchangeで回答できるため、Stack Overflowから移行されました。 7年前に移行され ました。 私は大規模なSQL Server 2008データベースでパフォーマンスチューニングを行っていますが、ITグループはSHOWPLAN権限を与えたくありません。これまで、「実行計画の表示」は、個々のクエリとプロシージャのパフォーマンスを理解する最も効果的な方法でした。 この許可を与えることにはどのようなリスクが伴いますか?データベースの開発コピーに対するこの制限の正当な正当性はありますか? 注:このSQL ITグループには、単一のSQL Serverインスタンスの下に200以上のデータベースがあります。ありがとう。 回答:以下に示すものを除き、重大なセキュリティリスクがないことを意味するように、応答がないと考えています。基本的に、開発データベースでこれを制限すると逆効果になります。 誰かがより良い答えを思いついた場合、私はこれを更新します。コメントしてくれてありがとう!

2
SQL Server Express 2008のインスタンス名を変更する方法は?
この質問は、データベース管理者のStack Exchangeで回答できるため、Server Faultから移行されました。 7年前に移行され ました。 開発マシンにSQL Server Express 2008をインストールしましたが、インスタンス名があります.\SQLEXPRESS。デフォルトのインスタンスにしたいです。セットアップで[既定のインスタンス]オプションを選択したことは確かですが、明らかに機能しませんでした。インスタンス名を変更する方法はありますか? 追加: これはインストーラーの既知のバグのようです。PCU 1(PubliC Update)が公開された時点で修正されますが、いつそれが起こるかはわかりません。それまでの間、次の2つの回避策があります。 インストール時に、「名前付きインスタンス」オプションを選択してを入力しMSSQLSERVERます。 名前付きインスタンスをインストールしてから、別のインスタンスをインストールすると、今回は「デフォルトのインスタンス」オプションが機能します。 それでも、疑問は残る:インスタンスの名前を変更するにはどのような方法があるなしに再インストールするには?セットアップが遅い痛みだったからです。XD


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