首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

多个连接查询很费时解决思路

2012-03-15 
多个连接查询很费时查询包括20张表,使用了16个连接每张表数据暂时不是很多,但是查询时间已经快一分钟了[解

多个连接查询很费时
查询包括20张表,使用了16个连接
每张表数据暂时不是很多,但是查询时间已经快一分钟了


[解决办法]
分析下SQL语句有没有问题,存不存在笛卡尔积的情况,当然结果不希望是笛卡尔积的时候。

索引什么的楼主都懂是吧!
[解决办法]

探讨
查询包括20张表,使用了16个连接
每张表数据暂时不是很多,但是查询时间已经快一分钟了

[解决办法]
对相关字段建立索引,优化你的查询语句,提高你的硬件配置能提高你的查询速度.
[解决办法]
除了添加索引外,是否可以考虑测试一下用临时表来实现部分子查询,然后用临时表内容来连接和只用连接哪个更快些.
[解决办法]
探讨
部分不使用连接,使用子查询效率会好一点吗?

[解决办法]
探讨
但是需要在那么多张表中查询数据,有什么其他的途径?

[解决办法]
如果是视图 可以用索引视图试试
[解决办法]
SQL code
---索引视图索引视图是具体化的视图--创建索引视图create view 视图名 with schemabinding asselect 语句go---创建索引视图需要注意的几点1. 创建索引视图的时候需要指定表所属的架构--错误写法create view v_f with schemabinding asselect   a.a,a.b,b.a,b.bfrom   a join b on   a.id=b.idgo---正确写法:create view v_f with schemabinding asselect   a.a,a.b,b.a,b.bfrom   dbo.a join dbo.b on   a.id=b.idgo2.在创建索引视图的select语句时,不使用*,必须指定具体的列名--错误写法create view v_f with schemabinding asselect   *from   dbo.a join dbo.b on   a.id=b.idgo---正确写法create view v_f with schemabinding asselect   a.a,a.b,b.a,b.bfrom   dbo.a join dbo.b on   a.id=b.idgo3.在创建索引视图的select 语句中,不能存在重复的列名,这个不举例了4. 只能为索引视图创建唯一聚集索引--正确的写法create unique clustered index ix_uniquetb on v_tbgo--错误的写法 create clustered index ix_uniquetb on v_tbgo
[解决办法]
如果不用视图 可以放入临时表处理 关联字段加索引
[解决办法]
索引不全
[解决办法]
1.临时表
2.视图
3.索引
[解决办法]
嵌套查询·····
[解决办法]
临时表,index
[解决办法]
探讨
如果不用视图 可以放入临时表处理 关联字段加索引

[解决办法]
1.临时表
2.视图
数据量大的时候索引是必需的 。
[解决办法]
视图还不如直接对表查询,做好相关的索引,如有必要使用临时表。
[解决办法]
建立索引视图试试

热点排行
Bad Request.