1

SQLServer2008を使用した最初のMVC4アプリケーションのコードがあります。

私のテーブルの1つは頻繁に使用されるため、毎日多くのデータがテーブルに保存されており、しばらくすると古いデータが削除されます。そのため、要素はIDスピーディーに増加します。

モデルのタイプIDとして定義しました。intしばらくするとテーブルがいっぱいになるのではないかと心配です。

テーブルIDが最大長に到達した場合はどうすればよいですか?私はこの状況に遭遇することはありません。

2番目の質問は、IDのタイプをタイプからタイプに変更しintてからlongデータベースをエクスポート/インポートする場合、このlongタイプはサイトの速度に影響を与える(減らす)のでしょうか?

4

2 に答える 2

7

1 から始まるを使用し、 1年中、1 年中、1INT IDENTITYごとに行を挿入すると、20 億の制限に達するまでに66.5年かかります...

恐れている場合 - このコマンドは何を教えてくれますか?

SELECT IDENT_CURRENT('your-table-name-here')

あなたは本当に2,147,483,647 に近づいていますか? それともまだ遠いですか??

「近すぎる」場合:列のデータ型をいつでも次のように変更できます-1から始まるBIGINTを使用し、毎秒1000行を挿入する場合、 922千兆の限界....BIGINT IDENTITY

于 2013-02-25T12:19:04.290 に答える
1

私の知る限り、自動増加 ID の限界に達するのを防ぐ効果的な方法はありません。テーブルを作成するときに、長く続くのに十分な大きさのデータ型に設定できます。しかし、ここに私が考えることができる1つの解決策があります。

同じデータ構造を持つ新しい一時テーブルを作成します。自動インクリメント列は既に含まれており、主キーとして設定されています。次に、Management Studio 内で、データを古いテーブルから新しいテーブルにインポートします。データをコピーするか独自のクエリを作成するように求められたら、クエリを作成することを選択し、ID を除く古いテーブルからすべてを選択します。これにより、ID をリセットして 1 から開始できます。その後、古いテーブルを削除して、新しい一時テーブルの名前を変更できます。[インポート] コマンドと [エクスポート] コマンドにアクセスするには、データベース自体を右クリックする必要がありますが、オプションでソース データベースと宛先データベースを同じように設定できます。

この方法は非常に簡単で、私は自分で数回実行しました。

于 2013-02-25T13:02:18.787 に答える