問題タブ [dbcc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql-server - 破れたページに関連する DBCC CHECKDB 出力の解釈のヘルプ
「破損ページ」エラーを報告している SQL 2005 データベースを調べるように依頼されました。
MsgID などを調べることはできますが、DBCC CHECKDB の出力をより一般的な意味で解釈するためのポインタがいくつか必要なだけです。
このサンプルでは:
...明らかに、エラーは単一のオブジェクトに関連していません(ObjectIDとIndexIDに適切な値がないことに注意してください)。それは正確にはどういう意味ですか?単一のオブジェクトではない場合、それは何ですか?
このサンプルでは:
...データを含むページを参照していますか、それともインデックスを含むページを参照していますか? 行外データについて言及していますが、インデックス ID も提供します。インデックス ID 値 0 と 1 は何を意味しますか?
ちなみに、これは慈善団体を支援するためのものなので、どんな助けも大歓迎です. ありがとう。
追伸: 私はまだ現場に行っておらず、送られてきた dbcc ログを調べているだけなので、いじくり回すことはまだできません。
編集:そのSQL 2005 v 9.0.3042
編集:サーバーの切り替え後にサードパーティがメンテナンス計画を元に戻さなかったため、破損したページがデータベースに数か月間残っていたため、バックアップの復元はオプションではない可能性があるとしましょう、またはそのようなシナリオ。したがって、エラーを調査し、修正または分離することが唯一の手段であると想定してください。
sql-server - SQL2000でのODBCの問題->2005アップグレード
このウィキの投稿では、問題と解決策の両方について概説しています。他の場所でこの問題を解決するための具体的なものが見つからなかったので、同様の問題を抱えている可能性のある他の人のためにこれを投稿したいと思いました。
最近、SQLServer2000データベースをSQLServer2005にアップグレードしました。サーバー上のデータベースの1つは、MSAccessデータベースへのバックエンドです。MS Accessデータベースは、DSNレスODBCを介したパススルークエリを使用してSQLServerに接続します。
DSNなしの接続文字列の例を以下に示します。
アップグレード後、ユーザーがパススルークエリを実行できず、次のエラーが表示されていたことがわかりました。
ODBC-「SQLServer」への接続に失敗しました
SQLサーバーログインの特権をsysadminサーバーの役割に昇格させると問題が軽減されたため、これは最初はアクセス許可の問題であるように見えました(ただし、これは明らかに優れた解決策ではありません)。
ログインをsysadminロールから戻した後、ManagementStudioを介してSQLServerに接続すると、ログインでストアドプロシージャが実行される可能性があることがわかりました。まったく同じログインは、MSAccess内からはできませんでした。これは、アクセス許可の問題ではなく、ストアドプロシージャを実行しようとしているときにMSAccessが実行していたことを示しています。
Profilerを使用してサーバー上でトレースを実行したところ、ストアドプロシージャの実行前にMSAccessが次のコマンドを実行しようとしていることがわかりました。
ストアドプロシージャを実行する前に、このコマンドで失敗したようです。Webでの調査によると、DBCC TRACEON(208)は「SETQUOTED IDENTIFIERS ON」コマンドを使用するのと同等であり、SQL2005ではこのDBCCコマンドを実行する権限が取り消されていました。
さらに調査した結果、MSクエリへの参照にも同様の問題があり、接続文字列のAPPコンポーネントを「MSクエリ」から別のコンポーネントに変更する必要があることがわかりました。
すぐに、ODBC接続文字列のAPPコンポーネントを変更し、MSAccessはストアドプロシージャの実行前にDBCCTRACEON(208)を実行しようとしなくなりました。
さらにテストした後、APPコンポーネントに含まれている「著作権」記号まで問題を追跡しました。
著作権記号を削除することで、すべてが接続に問題なく機能し、アプリケーションは以前のSQL2000で行っていたように機能しました。
これが同様の問題を抱えている他の人の助けになることを願っています。
sql - DBCC CHECKDBをしました
これに押しつぶされるのを手伝ってください
私は DBCC CHECKDB を実行し、DB の 1 つで、ファイル 'E:\MSSQL2000\Data\ のオフセット 0x0000000001c000 で読み取り中にメッセージ 823、レベル 24、状態 2、行 2 I/O エラー 21(デバイスの準備ができていません) が検出されました。 FTSWE_Data.MDF'.
リモートDBにアクセスするローカルホストから、リモートサーバーで作業していました。
また、私はVPNを使用していました。
sql - 値を挿入せずに ID 列をインクリメントするにはどうすればよいですか?
まず、OPが実際にやろうとしていたのはID列をインクリメントしていなかったため、回答されなかったこの質問を認識しています
現在のシード値が x の ID 列があり、それを x+1 に再シードしたいと考えています (つまり、ID 列を x から x+2 に直接ジャンプさせたいと考えています。
次のコマンドを使用してそれを行うことができることを知っています
ただし、いくつか質問があります。
- ここで分離レベル「シリアル化可能」は適切ですか?
- SQL Server ミラーリングを使用している場合、問題が発生しますか?
- 私が知っておくべき他の落とし穴はありますか?
c# - ADO.Net からの DBCC コマンドの実行
ADO.Net を使用して DBCC CHECK DB('MyDB) を実行しようとしていますが、コマンドによって返されるテキストを取得するにはどうすればよいですか?
私は次のことを試しました:
しかし、出力パラメーター値は空です。
sql - DBCC INPUTBUFFER を使用してパラメーター化されたクエリを完全にキャプチャできますか?
SQL Server 2008 では、トリガーを使用して、データベース内の特定のテーブルに加えられたすべての変更をキャプチャしています。私の目標は、変更全体をキャプチャすることです。つまり、データが挿入されているだけでなく、どのデータが挿入されているかを把握するためです。トリガーでは、DBCC INPUTBUFFER によって返された結果セットの EventInfo 列を使用して、現在実行中の SQL ステートメントを取得し、Parameters 列を使用して、使用されているパラメーターの数を取得しています。これはほとんどの場合に機能しますが、外部アプリケーションが ADO.NET を使用してクエリを実行する場合、または SSMS の [上位 200 行の編集] を使用して行が挿入/削除される場合、EventInfo にはパラメーター値がありません。
たとえば、文字列クエリがクエリ ウィンドウで実行された場合、または ADO.NET でパラメーター化されていない文字列クエリとして実行された場合、EventInfo は次のように表示されます。
Edit Top 200 Rows または ADO.NET のパラメーター化されたクエリを使用して同じデータを挿入すると、EventInfo に次のように表示されます (読みやすくするために改行が追加されています)。
トリガーのコンテキスト内でパラメーター値にアクセスする方法はありますか?
sql - DBCC SQL Server 2000 sysindexkeys
SQLServer2000データベースがあります。次のコマンドを実行すると
sysindexkeysから*を選択します
これにより、適切なレコードが表示されます。
次に、sysindexkeysに対してDBCCコマンドを実行します。何も表示されません。奇妙なことに、sysindexkeysレコードを含むページはありません。次に、クエリがレコードのリストをどのように表示するか。
sql-server - DBCC ウィザードとして機能するアプリケーションはありますか?
DBCC (DB Consistency Check) コマンドは強力なツールですが、グラフィカル ユーザー インターフェイスはありません。今 DBCC ウィザードのように機能するアプリケーションはありますか?
sql-server - DBCC 縮小ファイルでエラーが発生する
を使用してログ ファイルを圧縮しようとしていますDBCC SHRINKFILE(db_2.ldf)
が、これはログ ファイルの名前です。
毎回エラーが発生します:
8985、レベル 16、状態 1、行 1 sys.database_files でデータベース db のファイル 'FIelD' が見つかりませんでした。ファイルが存在しないか、削除されました。
それを修正するために私ができることを教えてください。
sql-server - SQL Server のキャッシュが完全にクリーンであることを確認するには、どの DBCC コマンドを実行する必要がありますか?
SQL Server のパフォーマンス テストを行い、適切なベースラインを確立したいと考えています。毎回すべてのキャッシュをフラッシュして、各テスト間で何かをキャッシュしていないことを確認し、実行間でパフォーマンスを向上させたいと考えています。SQL サーバーをできるだけクリーンにするには、どの DBCC コマンドを使用すればよいですか?