怎样动态监测数据库中的数据量,超过设定值,则将超过的部分数据导出并从库中删除?---------以下这个解决方法可行吗?
informix数据库中,某些表的数据量非常大,现在希望能在数据量超过某个阈值的时候,能将部分数据导出并从库中删除。
比如某个表设定数据量最大为100万,但是到了某个时间发现是150万,现在想将最早时间的50万数据导出并删除。
现在的问题:
1.怎样动态监测表中的数据量是否超过设定值? 比如100万,如果不用定时轮询线程(考虑到不容易确定一个比较合适的定时间隔),用触发器可以吗?
2.如果数据量超过设定值(100万),先按照时间字段升序排列(对150万排序),再将前面最久时间的50万数据导出并删除。
如果考虑到效率,感觉问题比较多,比如对于海量数据排序按字段排序会不会比较慢?对于数据库表中的记录,有没有办法不用时间字段排序,数据库的系统表中有相关信息吗?
[解决办法]
用个时间戳字段,定期自动就会排序
[解决办法]
1,编写A.JAVA类 实现: 导出数据到指定地点. 考虑数据量比较大,可以(DB2sql) select rownumber()over() f, a.* from tt a where f>1000000 ,最好表多个字段来表示是否导出
2,widows有自动执行任务,可按任意设定时间执行A.JAVA类的bat文件