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

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

2
SQL Serverで派生テーブルよりも一時テーブルを使用する利点はありますか?
派生テーブルは一時テーブルよりもパフォーマンスが優れていますが、とにかく多くのSQL Server開発者は2番目のテーブルを好みます。どうして?大量のデータ(数百万のレコード)でクエリを実行する必要があり、最良の選択を使用していることを確認したい。 CREATE TABLE A( id BIGINT IDENTITY(1,1) NOT NULL, field1 INT NOT NULL, field2 VARCHAR(50) NULL, ); CREATE TABLE B( id INT IDENTITY(1,1) NOT NULL, field1 VARCHAR(10) NULL, field2 INT NULL ); INSERT INTO A (field1,field2) VALUES (1,'a'),(2,'b'),(3,'c'),(2,'d'),(5,'e'), (6,'f'),(7,'g'),(8,'h'),(9,'i'),(2,'j'); INSERT INTO B (field1,field2) VALUES ('a',1),('b',2),('c',3),('d',4),('e',5), ('f',6),('g',7),('h',8),('i',9),('j',2),('k',3); DECLARE @begin INT=0,@end …

3
架空のインデックスの削除
以前は、クラスター化インデックスのDROP INDEXステートメントと非クラスター化インデックスのDROP STATISTICSステートメントのいずれかを使用して、架空のインデックスを削除すると思っていました。 クリーンアップしたいDTAの残りがいっぱいのデータベースがあります。ただし、オブジェクトを削除しようとすると、「オブジェクトが存在しないか、権限がないため」オブジェクトを削除できないというエラーメッセージが常に表示されます。私はサーバーの完全なシステム管理者ですので、何かをする権利があると思っています。 私はこれをDROP STATSとDROP INDEXステートメントの両方で試しましたが、どちらも同じエラーを出します。 誰かが以前にこれらを削除したことがあり、私が見逃しているトリックはありますか? 補遺 これを見てみると、オブジェクトをRクリックすると、[名前を付けてスクリプト]オプションと[削除]オプションの両方がグレー表示されることに気づきました。

1
.docx XMLを細断処理す​​る方法?
xml(実際にはdocxファイル)をSQL Server 2008データベースにインポートしようとしています。私はXMLプログラミングの初心者です。私はたくさんググりましたが、そこにあるほとんどすべての例は、単純なxmlファイルです。ここでxmlファイルは少し複雑です(以下を参照してください)。このXMLのテーブルを作成する方法と、SQLサーバーで実行するクエリを教えてください。すべてのタグに値が必要です。たとえば、w:rsidP、w:rsidRDefault、w:rsidRのw:p、w:pStyle、w:bookmarkStart、w:tタグなどです。 <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <w:document xmlns:ve="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml"> <w:body> <w:p w:rsidR="00EF42E0" w:rsidRDefault="00EF42E0" w:rsidP="00EF42E0"> <w:pPr><w:pStyle w:val="Heading1"/> </w:pPr><w:bookmarkStart w:id="0" w:name="_Toc212523610"/> <w:r> <w:t>Summary</w:t> </w:r> <w:bookmarkEnd w:id="0"/> </w:p> <w:p w:rsidR="00EF42E0" w:rsidRDefault="00EF42E0" w:rsidP="00EF42E0"><w:pPr><w:pStyle w:val="mainbodytext"/><w:ind w:right="-694"/><w:rPr><w:b/><w:bCs/></w:rPr></w:pPr><w:r><w:rPr><w:b/><w:bCs/></w:rPr><w:t>What is the Group Defined Practice for Integrity Management?</w:t></w:r></w:p> <w:p w:rsidR="00EF42E0" w:rsidRDefault="00EF42E0" …

6
SQL Serverは混乱の状態にあります。データベースは存在しますか、それとも存在しませんか?
本当に奇妙で厄介な問題が発生しました。サーバー上で実行されているSQL Server 2008 R2のインスタンスがなんらかの理由で破損しています。 まず、昨日作成したデータベースが見つからないことに気づきました。それで、私たちは周りを見回して、それはまだそこにあるが、離れていることがわかりました。したがって、mdfを添付しようとしましたが、のようなメッセージが表示されましたThe file is currently in use。 変だと思ったのでSQL Serverを再起動しました。同じこと...さて、抜本的な対策の時間...それで、サービスを停止し、mdfを圧縮し、サービスを開始し、解凍してから、復元しようとしました。上記のメッセージは消えましたが、それから私は得ました: 既存のデータベースと同じ名前のデータベースをアタッチできません 痛い。もちろん、データベースエクスプローラには表示されないので、何が起こっているのかわかりません...最後の手段: DROP DATABASE [DatabaseName] もちろん、それはうまくいきませんでした。データベースが存在しないことを教えてくれます。だから、私は行き詰まっています...ある時点でSQL Serverはデータベースが存在すると見なし、別の時点でdbが存在しないと見なします。明らかに混乱の状態にあります。 誰かこれを見たことがある?それを修正する方法に関するアイデアはありますか?

1
SQL Server 2008 R2の高バッファI / Oの原因
ドキュメント管理サーバー用のSQLサーバーのパフォーマンスをトラブルシューティングしようとしていますが、今日のパフォーマンスはかつてないほど低くなっています。 最近セットアップした管理データウェアハウス(MDW)を見ると、バッファI / Oに大きなスパイクが見られます。組み合わされたSQL待機時間は、1500〜2000ミリ秒の範囲にあり、通常よりもかなり高くなっています(約500ミリ秒)。この増加の大部分はバッファI / Oです。 DBAではなく、必要以上にこれを行うので、私は深く自分の深みから外れています。 バッファI / Oが大幅に増加した理由を確認する方法はありますか?これは、クエリが大量のデータを取得したためか、SQL Serverのメモリ制限の構成が正しくないためと考えられますか?トラブルシューティングに役立つように照会する必要がある特定の(またはその問題に関して一般的な)またはDMVはありますか? サーバーはSQL Server 2008 R2です。これは、2つのvCPUと8GB RAMを実行するVMであり、ディスクはSAN上の別のアレイでホストされます。 上記のグラフはすべて、SQL Server Management Data Warehouseを使用して生成されました。

1
大量のRAMを備えたSQL Serverを編成するための戦略
これで、DB用の新しいサーバーができ、とりわけ128 GBのRAMを利用できます(以前は16 GBでした)。SQL Serverはそのリソースの管理に非常に優れていることを知っていますが、SSが確実に実行するためにサーバー/データベースの設定または処理コード(ストアドプロシージャ/インデックスなど)で使用する必要がある特別な設定や戦略があるかどうか疑問に思っていました利用可能なラムの最大の利点。 DBは約70GBで、非トランザクションデータベースです(データウェアハウスです)。したがって、基本的には大きなWRITEの後に大量のREADが続くのが通常の流れです。

1
MSDBのdbo.DTA_ *テーブル
ブレントオザーのsp_blitzを運用サーバーの1つで実行しました。ITは、MSDBデータベース内のいくつかのテーブルにユーザーが作成したタグを付けました。それらはすべてパターンdbo.DTA_ *に従います。これらのテーブルはMSDBに付属していますか、それとも何か/誰かが追加したものですか?

5
SQL Server 2008と拡張プロパティ[終了]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 5年前休業。 SQL Serverでは、拡張プロパティを何に使用しますか?一部の記事やブログは、データベースとそのオブジェクトの自己文書化に使用することを提案していますが、これが適切に使用されていることを確認できません...これはほとんどの人によって無視されていますか?

3
SQL Server CDCでの変更の日時のキャプチャ
そこで、本番データベースの1つで変更データキャプチャを使用して調査を開始しました。各変更の日時を知りたいのですが。ウォークスルーやチュートリアルなどを読むと、標準的なアプローチは、LSNを使用してcdc.lsn_time_mappingシステムテーブルに関連付けることです。このアプローチは機能しますが、1日に数十万の変更について話す場合、それほど単純ではなく、効率的でもありません。 テスト環境で、変更トラックテーブルに次の調整を行いました。ALTER TABLE末尾に列を追加するステートメントを発行し、[__ChangeDateTime]それをデフォルト値にしましたGetDate()。アプローチは機能しているようですが、変更の追跡は引き続き正常に機能し、日時が取得されています。 しかし、システムテーブルをいじくり回すと、少し緊張します。 これがMicrosoftが最初から追加したシステムフィールドでない場合は、理由があったはずです。代わりに、LSNからcdc.lsn_time_mappingへのアプローチを選択したので、この方法で独自のハックを作成することで、問題に備えていますか? 更新: テスト中にGetDate()が時々私たちのニーズに対して十分に正確ではないことが発見されました-同じ時間を共有する複数の変更。sysdatetime()およびdatetime2を使用して値をナノ秒に移動することをお勧めします。2008+のオプションのみ明らかに。

2
SQL Server選択カウントREAD_COMMITTED_SNAPSHOT QUESTION
特定のテーブルでselect count(*)を実行すると、多くのデッドロックが発生しているようです。私はすでにすべての必要なパラメーターを変更し、それらを行のみのロックにしています。 また、READ_COMMITTED_SNAPSHOT分離を使用するようにデータベースを変更しました。 ただし、select count(*)where column =?テーブル上でデッドロックまたはテーブル上のロックをトリガーします。 select count(*)は中間行にのみアクセスする必要があることは正しいのでしょうか?しかし、それはそのようには見えず、依然としてデッドロックが発生しています。適切な索引付けはおそらく役立つでしょう。 問題は、SQL Server 2008 R2は、read_committed_snapshotがonに設定されている場合でも、select count(*)中にテーブルに共有ロックを設定しますか? ありがとう

2
インデックスの断片化とSSDディスク
パフォーマンスの問題は初めてですが、SSDディスクがインデックスの断片化によって引き起こされるパフォーマンスの問題を解決するという議論がありました。誰かこれを経験しましたか?ハードウェアの変更を考えており、それが役立つか迷っています

3
ユーザーがデータベースを削除できる理由を特定する
データベースを削除できるSQLサーバーユーザーがいます。以下のコードを実行して、SQL Serverでのユーザーの権限を確認しましたが、ユーザーがデータベースを削除する機能を特定できませんでした。このユーザーがdbを削除する方法を特定するのに役立つSQLスクリプトはありますか?データベースの削除を拒否するコマンドはありますか?(SSMSはユーザーをdbcreatorロールの一部として表示していません) select USER_NAME(p.grantee_principal_id) AS principal_name, dp.type_desc AS principal_type_desc, p.class_desc, OBJECT_NAME(p.major_id) AS object_name, p.permission_name, p.state_desc AS permission_state_desc from sys.database_permissions p inner JOIN sys.database_principals dp on p.grantee_principal_id = dp.principal_id order by principal_name 上記のクエリの出力は、役立つ場合、ユーザーに次の3つのレコードを提供します class_desc object_name permission_name permission_state_desc OBJECT_OR_COLUMN xp_cmdshell EXECUTE GRANT DATABASE NULL CONNECT GRANT DATABASE NULL CREATE DATABASE GRANT

1
OUTPUTを使用したMERGEが正しく動作していないようです
テーブルに外部キーを追加し、FKに違反する行を削除して、ModifiedTable_invalidテーブルにコピーしています。スクリプトの一部として、次のMERGEコマンドを取得しました。 MERGE ModifiedTable t1 USING TargetTable tt ON t1.JoinColumn = tt.JoinColumn WHEN MATCHED THEN UPDATE SET t1.FkColumn = tt.FkSource WHEN NOT MATCHED BY SOURCE THEN DELETE OUTPUT DELETED.* INTO ModifiedTable_invalid; ただし、このコマンドは、MERGEコマンドによって削除された行だけでなく、ModifiedTableからModifiedTable_invalidにすべての行を挿入しているようです。何が起こっているのですか?削除された行のみをModifiedTable_invalidに配置するにはどうすればよいですか?

2
すべてのSQL Serverデータベースで自動縮小をオフにします。なぜこれが機能しないのですか?
sp_MSforeachdbを使用してこの問題を解決できると考えていましたが、エラーメッセージが表示されます。 sp_MSforeachdb ' BEGIN USE [?] DECLARE @dbid INT SET @dbid = DB_ID() IF(@dbid > 4) BEGIN --PRINT ''[?]'' + CONVERT(VARCHAR, @dbid) --ALTER DATABASE [?] SET AUTO_SHRINK OFF END END; ' PRINT行のコメントを外して上記のクエリを実行すると、システムデータベースを除くすべてのデータベースのリストが表示されます。ただし、ALTER DATABASE行のコメントを外すと、次の2つのエラーメッセージが表示されます。 メッセージ5058、レベル16、状態2、行9 オプション 'AUTO_SHRINK'をデータベース 'master'に設定できません。 メッセージ5058、レベル16、状態1、行9 オプション 'AUTO_SHRINK'をデータベース 'tempdb'に設定できません。 これにより、ある時点で操作が中断され、一部のデータベースのみで自動圧縮が無効になります。 すべてのデータベースで自動縮小を無効にするにはどうすればよいですか?おまけの質問:なぜ私のアプローチが機能しないのですか?

2
ストアドプロシージャ内の権限を選択しますか?
動的SQLを使用するストアドプロシージャの実行権限をユーザーに付与しました。しかし、それを実行しようとすると、エラーが発生します。 SELECT権限がオブジェクト '[テーブル名]'、データベース '[データベース名]'、スキーマ 'dbo'で拒否されました。 ストアドプロシージャが使用するテーブルに対するアクセス許可をユーザーに付与する必要がありますか?それは私には本当に意味がありません。

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