现有三张表:
a表记录的是手机号码,以及其他信息
b表记录号段,就是手机号码前7或者8位,还有就是这个号段属于的市id,以及市名称
c表记录省市信息,其中有省id,市id,市名称
我要用这三张表关联,获得某省某市的信息,sql如下
select t3.provinceid,t3.cityid,t1.*
from a t1,b t2,c t3
where (substr(t1.phoneid,1,7)=t2.segment or substr(t1.phoneid,1,7)=t2.segment)
and t2.cityname =t3.cityname --市名称是唯一的,自辖市市id会有重复
数据库性能不会差到哪里去,a表有4,50w数据,b,c都几万出头,但是查询的时候基本跑一夜也跑不出数据,
将a表数据保留1000条,查询会有数据
请问下各位达人,我要分析这个数据库需要从哪些方面下手另,我将b,c表导入到新表b1,c1,再用上面的查询语句查询,速度还算正常感谢大家啦
a表记录的是手机号码,以及其他信息
b表记录号段,就是手机号码前7或者8位,还有就是这个号段属于的市id,以及市名称
c表记录省市信息,其中有省id,市id,市名称
我要用这三张表关联,获得某省某市的信息,sql如下
select t3.provinceid,t3.cityid,t1.*
from a t1,b t2,c t3
where (substr(t1.phoneid,1,7)=t2.segment or substr(t1.phoneid,1,7)=t2.segment)
and t2.cityname =t3.cityname --市名称是唯一的,自辖市市id会有重复
数据库性能不会差到哪里去,a表有4,50w数据,b,c都几万出头,但是查询的时候基本跑一夜也跑不出数据,
将a表数据保留1000条,查询会有数据
请问下各位达人,我要分析这个数据库需要从哪些方面下手另,我将b,c表导入到新表b1,c1,再用上面的查询语句查询,速度还算正常感谢大家啦
解决方案 »
- 触发器的这个声明是什么意思?
- 请问,我这个sql语句该怎么改-分不多,请大家指点。
- 如何将某个表中符合条件的而且纪录数多于一条的信息查询出来
- 通用数据库格式转换工具V1.1最新版,支持oracle,sqlsever,access等数据库之间数据格式转换
- pl/sql中如何保存修改过的存储过程
- 请大家帮我推荐一本学习sql的书?
- 一个很好玩的PL/SQL的东西,试试看!
- 关于数据库恢复,困扰好久了~
- 关于sqlplus中帮助的问题
- help!!!the install of oracle8i on linux9 is going now.......
- 向各位大神求助,oracal 与 SQL Server 数据类型对比
- oracle 10g如何查找临时表空间的使用率?
看一下执行计划。 把执行计划贴出来。 还有收集一下统计信息,在看下执行计划。 Oracle 高水位(HWM: High Water Mark) 说明
http://blog.csdn.net/tianlesoftware/article/details/4707900Oracle Statistic 统计信息 小结
http://blog.csdn.net/tianlesoftware/article/details/4668723Oracle 执行计划(Explain Plan) 说明
http://blog.csdn.net/tianlesoftware/article/details/5827245
同样b,c表的数据都是通过这样的方式确保每日获得最新的数据
只不过b,c是静态表,可能java程序里面对其进行的是delete操作,删除昨天的,导入今天新的表因为每天都更新,所以没有涉及索引和主外键,所以执行计划应该无法捕捉到路线吧