使用VB+ADO+ACCESS為資料庫做一些測試???(編號:6738)

使用VB+ADO+ACCESS為資料庫做一些測試,
測試單純新增五百筆資料的程式碼如下:
VIP的TABLE有15個欄位10個文字(10),2個日期,3個數字,7個索引
Cn.BeginTrans
  For i = 1 To 500
   sql = "insert into vip (vipno,htel,mtel) values (" & Str(maxvipno + i) & "," & Str(i) & "," & Str(i) & ")"
   Cn.Execute sql, , adCmdText
  Next i
  Cn.CommitTrans

Q1:在未使用Transaction時需9秒,使用Transaction之後只需3.7秒,
為何會有如此大之差別呢?
Q2:在新增4-5萬筆之後資料庫膨脹至200多MB,可是在使用壓縮後確只有5MB而已,
為何會如此,如何才能控制資料庫的膨脹?
Q3:我的資料庫有每日備份的機制,可是如果資料庫毀損於交易中,則本日的交易記錄全都毀損,怎麼寫才能確保每一筆交易都很安全存在??