查看: 5750|回复: 24

[讨论] 如何以最优化的方法来查看一个大表的最后几行数据

[复制链接]
论坛徽章:
10
生肖徽章2007版:狗
日期:2009-09-30 15:06:442010世博会纪念徽章
日期:2010-10-15 12:33:00ITPUB9周年纪念徽章
日期:2010-10-08 09:32:272010新春纪念徽章
日期:2010-03-01 11:19:56生肖徽章2007版:马
日期:2009-11-13 10:55:15生肖徽章2007版:鼠
日期:2009-11-13 10:52:44生肖徽章2007版:马
日期:2009-11-11 08:35:51参与WIN7挑战赛纪念
日期:2009-11-06 11:12:56生肖徽章2007版:马
日期:2009-11-03 14:36:55鲜花蛋
日期:2011-10-22 23:25:14
发表于 2009-8-18 11:46 | 显示全部楼层 |阅读模式
为了方便起见,我对报警日志文件建立了一个外部表,可是不到一个月时间,其数据量达到了15万条之多,可是通常我们都会查看最近所产生的报警,也就是查看最后几行。可以使用rownum来实现,可是那样对表的遍历也太多了,各位有什么更优化的方法来查看最后几行数据吗?

[ 本帖最后由 my_new_house 于 2009-8-18 12:02 编辑 ]
论坛徽章:
401
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
发表于 2009-8-18 12:06 | 显示全部楼层
如果有日期列索引,select where 日期>??

使用道具 举报

回复
招聘 : Java研发
论坛徽章:
71
马上加薪
日期:2014-02-19 11:55:14蜘蛛蛋
日期:2012-12-26 18:16:01茶鸡蛋
日期:2012-11-16 08:12:48ITPUB 11周年纪念徽章
日期:2012-10-09 18:05:07奥运会纪念徽章:网球
日期:2012-08-23 14:58:08奥运会纪念徽章:沙滩排球
日期:2012-07-19 17:28:14版主2段
日期:2012-07-07 02:21:02咸鸭蛋
日期:2012-03-23 18:17:482012新春纪念徽章
日期:2012-02-13 15:13:512012新春纪念徽章
日期:2012-02-13 15:13:51
发表于 2009-8-18 12:10 | 显示全部楼层
楼上,外部表哦

使用道具 举报

回复
论坛徽章:
4
祖国60周年纪念徽章
日期:2009-10-09 08:28:00参与WIN7挑战赛纪念
日期:2009-11-06 16:05:25生肖徽章2007版:鼠
日期:2009-11-17 16:35:582013年新春福章
日期:2013-02-25 14:51:24
发表于 2009-8-18 12:42 | 显示全部楼层
个人感觉 用order by + rownum 这样应该比较好

使用道具 举报

回复
论坛徽章:
1
生肖徽章2007版:马
日期:2009-12-01 08:49:26
发表于 2009-8-18 13:03 | 显示全部楼层
可以考虑把当天数据和历史数据分开存储

使用道具 举报

回复
论坛徽章:
10
生肖徽章2007版:狗
日期:2009-09-30 15:06:442010世博会纪念徽章
日期:2010-10-15 12:33:00ITPUB9周年纪念徽章
日期:2010-10-08 09:32:272010新春纪念徽章
日期:2010-03-01 11:19:56生肖徽章2007版:马
日期:2009-11-13 10:55:15生肖徽章2007版:鼠
日期:2009-11-13 10:52:44生肖徽章2007版:马
日期:2009-11-11 08:35:51参与WIN7挑战赛纪念
日期:2009-11-06 11:12:56生肖徽章2007版:马
日期:2009-11-03 14:36:55鲜花蛋
日期:2011-10-22 23:25:14
 楼主| 发表于 2009-8-18 13:10 | 显示全部楼层
我发出如下的命令select  rownum ,text from alert_log
where rownum<(select max(rownum) from alert_log)-10
order by rownum;
竟然出现错误:



SQL> select  rownum ,text from alert_log
  2  where rownum<(select max(rownum) from alert_log)-10
  3  order by rownum;
select  rownum ,text from alert_log
*
第 1 行出现错误:
ORA-29913: 执行 ODCIEXTTABLEFETCH 调出时出错
ORA-01652: 无法通过 128 (在表空间 TEMP1 中) 扩展 temp 段
ORA-06512: 在 "SYS.ORACLE_LOADER", line 52
ORA-06512: 在 line 1


貌似是与我的排序表空间有关系啊,该怎么办呢?

使用道具 举报

回复
论坛徽章:
281
2015年新春福章
日期:2015-03-06 11:57:312012新春纪念徽章
日期:2012-02-13 15:12:252012新春纪念徽章
日期:2012-01-04 11:51:22蛋疼蛋
日期:2011-12-29 07:37:22迷宫蛋
日期:2011-12-26 14:19:41茶鸡蛋
日期:2011-11-17 09:20:52茶鸡蛋
日期:2011-11-10 22:42:38ITPUB十周年纪念徽章
日期:2011-11-01 16:21:15茶鸡蛋
日期:2011-10-24 09:48:48ITPUB十周年纪念徽章
日期:2011-09-27 16:30:47
发表于 2009-8-18 13:17 | 显示全部楼层
外部表自身没啥好办法~~~

操作系统级用tail看吧

使用道具 举报

回复
论坛徽章:
44
青年奥林匹克运动会-自行车
日期:2014-09-12 22:37:432012新春纪念徽章
日期:2012-02-13 15:12:092012新春纪念徽章
日期:2012-02-13 15:12:09咸鸭蛋
日期:2012-01-08 14:47:322012新春纪念徽章
日期:2012-01-04 11:50:44ITPUB十周年纪念徽章
日期:2011-11-01 16:21:15迷宫蛋
日期:2011-08-14 17:30:33双黄蛋
日期:2011-05-28 20:32:46紫蛋头
日期:2011-05-18 20:41:51现任管理团队成员
日期:2011-05-07 01:45:08
发表于 2009-8-18 13:21 | 显示全部楼层
原帖由 my_new_house 于 2009-8-18 11:46 发表
为了方便起见,我对报警日志文件建立了一个外部表,可是不到一个月时间,其数据量达到了15万条之多,可是通常我们都会查看最近所产生的报警,也就是查看最后几行。可以使用rownum来实现,可是那样对表的遍历也太多了,各位有什么更优化的方法来查看最后几行数据吗?

给你提供另外的两个思路,比这个外部表应该简单:
1 每天的凌晨0时自动rename alert文件,Unix下很简单,mv就可以
2 使用DBConsole或者Grid Control,每天打开网页扫一眼就可以了。

使用道具 举报

回复
论坛徽章:
75
生肖徽章:猪
日期:2014-09-05 10:25:05指数菠菜纪念章
日期:2016-10-17 16:12:49生肖徽章:兔
日期:2015-02-05 16:49:02生肖徽章:鼠
日期:2015-02-05 16:49:02生肖徽章:鼠
日期:2015-02-05 16:49:02生肖徽章:马
日期:2015-02-05 16:49:02生肖徽章:羊
日期:2015-02-06 08:40:35生肖徽章:羊
日期:2015-02-06 08:40:34股神
日期:2015-01-05 08:27:16菲尼克斯太阳
日期:2014-12-29 13:11:51
发表于 2009-8-18 13:30 | 显示全部楼层
shell最简单了。

使用道具 举报

回复
论坛徽章:
15
马上加薪
日期:2014-12-03 12:48:23双子座
日期:2016-01-15 10:47:09秀才
日期:2016-01-13 12:14:26秀才
日期:2015-12-25 15:31:10双子座
日期:2015-12-15 09:58:52巨蟹座
日期:2015-11-17 17:17:02白羊座
日期:2015-11-09 13:49:13双子座
日期:2015-11-02 10:25:11秀才
日期:2015-09-21 09:46:16水瓶座
日期:2015-08-25 15:30:04
发表于 2009-8-18 13:45 | 显示全部楼层
将这个表增加一个栏位,该栏位的值做成Sequences,自动增加,查看的时候先看看现在Sequences值到哪里了,想看后面几个随便你挑了

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 
京ICP备09055130号-4  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表