問題タブ [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 CheckIdent を使用した一括コピー挿入
私たちのチームは、SQL Server 2008 データベースに大量のデータを挿入する必要があります。私たちは良い解決策を探しています。今、私たちはそれを思いつきましたが、私はそれに疑問を持っています. それで、これが良い解決策のように思えるかどうかをここで尋ねています。追加の課題は、それが 4 つのサーバーを介してピアツーピアで複製されたデータベースであることです! :)
挿入する行が 100 万行あるとします。
- 取引開始
- 100 万のテーブルの現在の ident 値を増やします
- 100 万行と正しい ID を備えた DataSet/DataTable を用意する
- データをデータベースに一括コピーする
- トランザクションをコミットする
これは良い解決策でしょうか。同時実行の問題が発生したり、トランザクションが大きすぎたりする可能性があります。
sql-server - 前回データベースでdbcccheckdbが実行された日時を知るためのtsql
Tsqlを使用して、DBCC checkdbがSQLサーバー(2000、2005、または2008)で最後に実行されたのはいつかを知るにはどうすればよいですか?
よろしく
dbcc - DBCC SHRINKFILE 操作では、代わりにデータ使用量が増加します
まず第一に、データベースを縮小しないほうがよいことはわかっています。しかし、私たちの状況では、より多くのスペースを確保するためにデータ ファイルを縮小する必要がありました。
環境: Windows Server 2003 Enterprise x64 で実行されている SQL Server 2005 x64 SP3 Ent。
データベースには、1 つのデータ ファイルと 1 つのログ ファイルがあります。DBCC SHRINKFILE を実行する前は、データ ファイルには 640 GB があり、そのうち 400 GB が空いているため、データは約 240 GB になります。圧縮プロセスを高速化するには、最初にデータベースを最適化してから、データ ファイルを圧縮する必要がありました。
ただし、DBCC SHRINKFILE を使用してデータベース データ ファイルを圧縮した後、データは 490 GB に変更されました。どのようにそれが起こることができますか?
sql-server - クラスター化インデックスを追加/削除せずに SQL Server テーブルの断片化を減らしますか?
過去 1 年間、ゆっくりと成長している大規模なデータベース (90 GB のデータ、70 GB のインデックス) があり、その成長/変更により、インデックスだけでなく、テーブル自体にも大量の内部断片化が発生しています。
(多数の)非常に断片化されたインデックスを解決するのは簡単です-断片化の程度に応じて、REORGANIZEまたはREBUILDがそれを処理します-しかし、実際のテーブルの断片化をクリーンアップする際に見つけることができる唯一のアドバイスは、クラスター化されたインデックスを追加することですテーブルに。今後テーブルにクラスター化インデックスを作成したくないので、後ですぐに削除しますが、クラスター化インデックスを使用せずにこれを行う別の方法はありますか? これを行う「DBCC」コマンドは?
ご協力いただきありがとうございます。
sql-server - SQL Server:DBCCSHRINKFILEを使用する際の隠れたリスク
SQL Server DBで完全復旧モードを使用して、巨大なLDFファイルを取得しています。そのため、ログファイルを縮小することを計画しています。
DBCC SHRINKFILEを使用してデータベースログファイルサイズ(LDF)を削減すると、パフォーマンスが低下しますか?
それをデータファイル(MDF)に適用するのはどうですか?
sql-server-2008 - SQL SERVER 2008 R2 DBCC PAGE 困惑
DBCC IND と DBCC page についてテストしました。エンジン: SQL Server 2008
脚本:
--これは次を示します: 1 274 1 278 1307151702 0 1 72057594039107584 行内データ 1
ショー:
データ:
スロット 0、オフセット 0x60、長さ 51、DumpStyle BYTE
レコード タイプ = PRIMARY_RECORD レコード属性 = NULL_BITMAP VARIABLE_COLUMNS VERSIONING_INFO レコード サイズ = 51 メモリ ダンプ @0x000000000F7EA060
0000000000000000:70000800 01000000 03000002 001B0025†P ...............%0000000000000010:00616161 61616161 616161616162 62626262 † .AAAAAAABBBBBM2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 . 0000000000000030: 00000 †††††††††††††††††††††††††††††††...
オフセット テーブル:
行 - オフセット 0 (0x0) - 96 (0x60) 説明しようとしています:
バイト 1 0x70 01110000
ビット 0: SQL サーバー 2005/2008
ビット 1 ~ 3 : プライマリ データ
ビット 4 : HAS NULL
ビット 5: VAR あり
ビット 6: 使用しない
ビット 7: ゴーストではない
2 番目のバイト
0x00 : 使用しない
第 3 バイト
0x0008 : オフセット 8
固定長 int 、値1を得ました
次のバイト
0300 : 3列
00 : ヌルではない
0002 :2列
var column endoffset 0x001B (値 aaa を取得しました....)
var column end offset 0x0025 (値 bbbb を取得しました...)
しかし、私は最後のバイトについての意味を知りません....
私を助けてください、どうもありがとう
sql-server - SQL サーバー全体ではなく、特定のデータベースのバッファをクリーンアップできますか
私が知っていることから、「DBCC FREEPROCCACHE」と「DBCC DROPCLEANBUFFERS」を実行すると、サーバー全体のバッファーがクリーンアップされます。とにかく、指定されたデータベースのバッファのみをクリーンアップする方法があるのだろうか。したがって、他のデータベースのクエリは影響を受けません。
sql-server - MS SQL 2008のデータベースID、ファイルID、ページIDからテーブル名を取得するにはどうすればよいですか?
ロックされたリソースがDBID、ファイルID、ページIDの3つのフィールドで示されているデッドロックグラフを作成しました。関連するobjectidもいくつかあります。私が知りたいのは、このページがどのテーブルに属しているかだけです。試しDBCC PAGE(dbid, fileid, pageid) with tableresults
ましたが、テーブル名が表示されません。
これを取得する方法はありますか?
更新:SELECT name From sys.indexes WHERE object_id = 123 and Index_id = 456
ここでも試してみました123はm_objid
(next ObjectId
)、456はm_indexid
(next IndexId
)で、コマンドの出力として取得しますDBCC Page
。私が得るのはNULLだけです。
sql-server - SQLServerデータベースの縮小コマンドでエラーが発生しました
これらのコマンドをコンソールアプリケーションから実行しています
このエラーが発生します
XXXデータベースを縮小できませんでした。許容される最大行サイズの8060を超えるサイズ8126の行を作成できません。ステートメントは終了しました。System.Data.SqlClient.SqlException(0x80131904):許容される最大行サイズの8060よりも大きいサイズ8126の行を作成できません。
どんな助けでも大歓迎です。
sql-server - SQL Server の完全に空のパーティションに行ロックが存在するのはなぜですか?
範囲左関数でパーティション分割されたテーブルを作成しました。次に、いくつかの行を 1 つのパーティションだけに挿入します。結果:
結果:
次に、このテーブルのいくつかの行を更新し、sys.dm_tran_locks を照会すると、次のように partition4 でいくつかの RID ロックが見つかります。
このような結果:
dbcc pageを使用してページ 3:13 の内容を確認すると、何も表示されません。
このような結果:
したがって、dbcc ページは、ページ 3:13 に何もないことを確認します。ファイル 3:13 には何も存在しないのに、なぜ RID ロックが存在するのですか?