Oracle数据库,如何检测某个表名已经存在?请各位大侠指教!(50分)

  • 主题发起人 主题发起人 zxp_ping
  • 开始时间 开始时间
Z

zxp_ping

Unregistered / Unconfirmed
GUEST, unregistred user!
因我要定时导出备份表(以免表记录过多而造成慢,几百万条以上),如要备份A表,我依次
备份为:ABak001,ABak002,,,,,?
还有就是如何给一个表加索引?
 
另外,库中表增多,会不会对操作其中较小的表速度也产生影响?
 
你的分太少了,问这么多?象征性的告诉你一个吧,你挑吧?
 
database1.GetTableNames(List: TStrings; SystemTables: Boolean = False);
database1也可換成adoconnection
list 可以是combobox的items等等,你可以定義一個tlist,
然後在tlist裡面循環搜索一遍就很快查到你
找到以後你也寫sql語句建索引
 
不会吧,,,大侠你。我只剩10分了呀,,你帮我回答了,我等下把剩下10分也全给你呀。
救救我吧。。。万一行不能,那只告诉我第一个好了。。我再翻翻看,是否哪里网站上有
介绍建索引。。哎。
 
嘿,第一个问题cloudjave兄已经回答了,那剩下的wangjiankang_71;因答一下关于速度的
问题吧。OK?
 
呵呵,有点贪得无厌,想再问一个。。统计记录数除:
Select count(*) from tabel..外是否有别的更快捷的方法?发觉这种方法统计很慢。?
 
count的字段如果建立了索引的话,速度应该比较理想。建议将*修改为建立了索引的字段。
 
你的备份表是否名称是继续增加的方式?
select max(tname) from tab where tabtype='TABLE' and tname like 'abak%'
所得到的就应该是你最近备份的表名。
你提问的那种情况下只要表空间充足,不会影响到速度。
几百万条的数据,如果没有索引的话,象你这样来取记录数,那是找死。
不过,好的方法也没有,最多只是根据最常用的关键字建立索引,将排序的时间分摊到向
数据库中增加记录时。
 
数据库表增多或者数据频繁增减,会造成数据文件内部分配单元随片降低真个数据系统的
效率,建议定期(如若干个月,如果业务、数据规模)离线导出-删除-导入一次,再有就是
增加数据表空间,和TEMP表空间(通过增加对应的数据文件实现)。而你问的对小表有没有
影响?回答是影响很小,小到你觉察不出,当然前提是你的碎片还没有使你的ORACLE数据库
实例整体性能下降到很明显的程度,这样回答够细了。你不会要求我将将ORACLE系统结构
ORACLE优化手段吧,太便宜了吧
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部