oracle查询速度问题 oracle查询速度问题 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 索引没做啊?索引做了能跟sqlserver里面一样快吗 你sqlserver里面不做索引几秒钟也查不出来吧 表a,b 的no字段必须做索引,另b.date 确定没有null值 create index TEXTINDEX1 on 表a(NO); create index TEXTINDEX2 on 表b(NO); 是这样吧 不要使用笛卡尔积表达式。SQL Server自动优化得很好。其它的许多数据库系统可能是需要你数据库程序员写出的sql语句有一定素质的,例如这个连接语句。 是查询语句写法的问题。没有认真学习过 sql 的人,可能“只要能出结果就行了”的意识一直在作怪。没有找到过一本稍为专业点的sql教科书看看。而SQL Server会对你写的每一种sql语句进行几十种不同的优化,然后将最好的一种保存在数据库系统中重复使用。因此你乱写sql语句可能也会被SQL Server自动改为正规的inner join关系运算语句。但是一个正规学习过sql的程序员为什么不能要求自己就去学会分析判断“哪些写法最不好”呢? sqlserver使用inner join,在oracle不建议用inner join,用这种直接from两个表;建了索引花了14分半中where条件是以下往上解析的,要把数据多的放在后面好像就这些语法啊一般几百万数量级的查询大约是要多少时间啊 即使你使用 inner join 语句,对于某些数据库系统,它也不会只能地将关系计算的两端(也就是表a、表b)反转过来进行性能分析,而是傻傻地按照你写的表达式进行计算。所以就算是你写inner join语句,你也需要自己去判断哪一个表写在前边才能提高查询性能,有时候可能你需要把b表写在a表前边才行,而当(运行一些天只后)a、b表中的数据量的比例颠倒改变了以后,可能你又得重新修改sql语句而让a表写在b表之前。SQL Server具有很好的 sql 优化机制。但是这其实降低了一些不成熟的、不爱研究问题的程序员的动手能力。 oracle和sql server机制不一样的拿你上面的语句来讲,oracle的执行计划是从后往前,所以两张表关联(两个表的前后顺序、where条件的顺序等都会影响到执行效率;一般:小数据量的表放在后面关联,能过滤大数据量的where条件放在后面)另外,你的表有没有创建索引你用pl/sql查看一下执行计划,看下慢在哪里?也可以把执行计划贴出来,别人好帮你分析。 楼主的sql基础约等于零,需要先补脑。 求MVC的增删改查的代码,要求不用Linq “并非所有的代码路径都返回值”大家来帮帮忙啦~~ 在smartphone中有没有类似button的控件 紧急求助,50分 合并图片时报GDI+ 中发生一般性错误。 请教DataGridView中DataGridViewComboBoxColumn的用法!!! IE6浏览器cookies限制20个,如何解决? 求助:WEB中如何下载保存于数据库image类型中的文件 强行关机和关机有什么区别? c# 服务程序和普通程序有什么不同? 请问,如何以只读方式打开 记事本? 菜鸟求教:这个控件是什么(报表控件?gridview?)
create index TEXTINDEX2 on 表b(NO);
是这样吧
不要使用笛卡尔积表达式。SQL Server自动优化得很好。其它的许多数据库系统可能是需要你数据库程序员写出的sql语句有一定素质的,例如这个连接语句。
是查询语句写法的问题。没有认真学习过 sql 的人,可能“只要能出结果就行了”的意识一直在作怪。没有找到过一本稍为专业点的sql教科书看看。而SQL Server会对你写的每一种sql语句进行几十种不同的优化,然后将最好的一种保存在数据库系统中重复使用。因此你乱写sql语句可能也会被SQL Server自动改为正规的inner join关系运算语句。但是一个正规学习过sql的程序员为什么不能要求自己就去学会分析判断“哪些写法最不好”呢?
建了索引花了14分半中
where条件是以下往上解析的,要把数据多的放在后面
好像就这些语法啊一般几百万数量级的查询大约是要多少时间啊
拿你上面的语句来讲,oracle的执行计划是从后往前,所以两张表关联(两个表的前后顺序、where条件的顺序等都会影响到执行效率;一般:小数据量的表放在后面关联,能过滤大数据量的where条件放在后面)
另外,你的表有没有创建索引你用pl/sql查看一下执行计划,看下慢在哪里?
也可以把执行计划贴出来,别人好帮你分析。