No.3ベストアンサー
- 回答日時:
繰り返し同じコマンドを実行する方法として、isqlの場合は、
go の後に数字をいれることで、コマンドを繰り返し実行できます.
例えば
insert table values ( 1 )
go 10
と指定すると、insert 文を10回繰り返し実行します。
また、set rowcount を使用すると、この後実行されるSQLの対象件数を指定することができます。
例えば
set rowcount 1000
Select * from Table
とすれば1000件が検索されます。
同じように
set rowcount 1000
Delete Table
とやれば100件、削除されるはずです。
ループを使用したい場合 While 文を使います.
前述のset rowcount とあわせて使うといいかもしれません。
set rowcount 1000
declare @count int
select @count = 0
while @count < 100
begin
delete Table [where条件]
select @count = @count + 1
end
削除の対象となる条件がしていされていないので、テーブル先頭の方から適当に1000件消えてしまいます.
実際に作業される際は条件を指定する必要があると思います.
また、Device がいっぱいになるとのことですが、トランザクションログ用のデバイスのことでいいですよね。
上記の方法では、いずれにせよトランザクションログはいっぱいになってしまうと思います.Dump tran 等で適宜対処する必要があるでしょう。
残したい行の条件が指定できるのであれば、 select into コマンドで
別テーブルに残したい行を移動し、元のテーブルを trancate table で削除、テーブルをリネームするのがいいと思います。select into や truncate table は大量にトランザクションログを出さないはずなので何度もコマンドを発行するよりいいと思います.
実際に処理を実行される場合は、必要なデータまで消さないように十分注意して行ってくださいね。
各コマンドの詳細はマニュアルを確認してください。
PDFのマニュアルのURLを参考URLに記入しておきます。
以上、がんばってください。
参考URL:http://www.sybase.co.jp/product/manuals/index.html
この回答への補足
YanYasさん、回答ありがとうございました。
早速使ってみようかと思いますが、2点ほど質問させてください。
while文を使用した際、1000件になるまでまわしていますが、一番初めにset rowcount 1000 を何故セットする必要があるのでしょうか?
トランザクションがいずれにせよいっぱいになる(!)とのことでしたので、Dump tran を行いたいと思います。
ちなみに checkpoint コマンドはトランザクションログのクリアになりますか?
初心者の質問ですみません。
が、たいへん助かってます!
No.2
- 回答日時:
#1です。
別の方法を書きます。必要なレコードをエクスポートし、表をdrop table で表削除した後、
新たに create table すれば、フラグメンテーションも解消されるので、良いかも!
そして、エクスポートファイルからインポートすると。
No.1
- 回答日時:
Sybaseですか。
。 使ったことはないですが、他社DBからの類推で話をします。100万件のレコードの削除ということですが、1つの表の全レコードを削除するのですか?
それとも、不要なレコードだけ削除するのですか?
前者の場合、Oracleでは表内の全レコードを削除するSQL文が存在します。
"truncate table"文です。このSQL文はレコード管理ブロック部のみ初期化するので、
delete文より遥かに高速です。トランザクション処理をスキップしますので。
Sybaseにも同様なSQL文があればよいのですが。。
-----------------------
「一気に削除するとDeviceがいっぱいとなる」とのことですが、おそらく、
トランザクション管理領域(Oracleでは「ロールバックセグメント」)がパンクするためでしょう。
DBのトランザクション設定を削除するときだけ、変更してみてはいかがですか?
Oracle、DB2、informixでもそうですが、トランザクション処理を変更することができます。
トランザクション処理を一切行わない、いわゆる「ダーティリード・モード」にすれば、
「一気に削除するとDeviceがいっぱいとなる」現象は発生しないと思います。
一気に削除できるでしょう。
一度、マニュアルを見てはいかかでしょうか?
もし、うまくいった場合、トランザクション設定を元に戻すことも忘れずに。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
家の中でのこだわりスペースはどこですか?
自分の家で快適に過ごすために工夫しているスペースはありますか? 例)ベランダでお茶を飲むためのカフェテーブル ゲーミングに特化したこだわりのPCスペース
-
【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
2024年は「名探偵コナン30周年」「涼宮ハルヒ20周年」などを迎えますが、 あなたが「もうそんなに!?」と驚いた○○周年を教えてください。
-
【お題】引っかけ問題(締め切り10月27日(日)23時)
【大喜利】 「日本で一番高い山は富士山……ですが!」から始まった、それは当てられるわけ無いだろ!と思ったクイズの問題
-
許せない心理テスト
私は「あなたの目の前にケーキがあります。ろうそくは何本刺さっていますか」と言われ「12本」と答えたら「ろうそくの数はあなたが好きな人の数です」と言われ浮気者扱いされたことをいまだに根に持っています。
-
14歳の自分に衝撃の事実を告げてください
タイムマシンで14歳の自分のところに現れた未来のあなた。 衝撃的な事実を告げて自分に驚かせるとしたら何を告げますか?
-
数百万件レコードのdelete
SQL Server
-
大量レコードをTRUNCATEせずにすばやく削除する方法
Oracle
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel テーブル内の空白行の削除
-
削除フラグってどうなんでしょう?
-
飲み会で、座敷orテーブルどち...
-
「テーブルに座って……」という...
-
取数計算
-
Accessのインポートについて(上...
-
Accessでデータシートに同じデ...
-
【PHP】SQL文のSUM関数で出力し...
-
人の前を通る場合について
-
1対1のリレーション(主キー同...
-
コーヒーテーブルって何ですか?
-
データベースの接続に失敗して...
-
男性と2人で飲食店に行きテーブ...
-
【エクセル】データテーブルの...
-
モンスターハンター3rd テーブル
-
ロックテーブルサイズ超えのエ...
-
面接のときテーブルが正面に。...
-
数値をNUMBER型にするかCHAR型...
-
食事の前に食卓を拭きますか?
-
いずれかの組み合わせが存在す...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel テーブル内の空白行の削除
-
アクセスのクエリでレコード削...
-
トリガって、自分自身のテーブ...
-
ACCESSのマクロでテーブルのデ...
-
Access2000の削除クエリで消し...
-
アクセス2010について
-
HiRDBのPURGEとDROPの違い
-
リレーションについて
-
列のDEFAULT設定を削除するコマ...
-
mysqlで間接クエリー実行させた...
-
ACCESSの削除規制
-
CSVファイルから一括して削除す...
-
ワークテーブルなのに自動で削...
-
SQLSERVERで関数作成?
-
テーブルが削除できない
-
リサイクルビンのテーブル削除方法
-
ここで言う参考書のエイリアス...
-
大量のレコードを削除する方法
-
条件付DELEATE文について
-
マージレプリケーション
おすすめ情報