当前位置:首页 » 编程语言 » sql视图数据很慢
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql视图数据很慢

发布时间: 2022-04-18 08:19:08

A. sql server 创建视图很快,但从视图读数据很慢

在经常查询的列创建索引,
至于聚集和非聚集索引该什么时候创建 http://database.ctocio.com.cn/tips/272/7588272.shtml
这个网址里有很详细和地道的讲解,希望能够对你有所帮助。

B. MySQL视图查询超慢,求解答

时间的快慢主要由索引决定,在索引都最优化的情况下才与数据量有关。 视图不可能明显加快的查询速度,只是编程方便而已。

C. sql server 视图效率问题

1、SQL本来就应该尽量少用视图,更何况你这么大数据量
2、每个表要建索引
3、语句优化,我给你写成一个存储过程,你可以试下
create proc test
as

with c_1 as
(
SELECT c.varSOuCode
, c.varStoCode
, SUM(cd.fltCarWeight) AS fltCarWeight
, SUM(cd.mnyCarFreight) AS mnyCarFreight
, c.varDsOGoCode
, c.dtmCarDate
, c.intSingIn
, c.nvrCarCompany
, c.dtmCBTime
FROM dbo.RL_CarrierDetails AS cd INNER JOIN
dbo.RL_Carrier AS c
ON c.varCarCode = cd.varCarCode
GROUP BY c.varSOuCode
, c.varStoCode
, c.varDsOGoCode
, c.dtmCarDate
, c.intSingIn
, c.nvrCarCompany
, c.dtmCBTime
)
s as
(
SELECT sop.varStOCode
, so.dtmCreDate
, ISNULL(SUM(sop.intCostNum * p.fltWeight), 0) AS fltWeight
FROM dbo.RL_StoreOutPro AS sop INNER JOIN dbo.RL_StoreOut AS so
ON so.varSOuCode = sop.varStOCode LEFT OUTER JOIN dbo.RL_Proct AS p
ON sop.varProCode = p.varProCode AND p.fltWeight > 0
GROUP BY sop.varStOCode, so.dtmCreDate
)
SELECT c_1.varSOuCode
, c_1.varStoCode
, c_1.fltCarWeight
, c_1.mnyCarFreight
, s.fltWeight
, c_1.fltCarWeight - s.fltWeight / 1000 AS diffNum
, s.dtmCreDate
, c_1.varDsOGoCode
, c_1.dtmCarDate
, c_1.intSingIn
, c_1.nvrCarCompany
, c_1.dtmCBTime
FROM c_1 INNER JOIN s
ON c_1.varSOuCode = s.varStOCode

D. Oracle 视图查询有的时候很慢,有的时候查询很快

这种情况有很多可能性,首先,你的服务器的负载情况会影响到你的数据读取速度的,如果数据库服务器执行的进程过多,会导致查询速度下降很多。
另外,第一次执行同一个SQL的时候,都会比较慢一些,再次执行的时候,由于数据等还在内存内,会速度快很多。
再者,在Oracle中,有共享SQL语句的机制,在第一次解析之后, ORACLE将SQL语句存放在内存中.这块位于系统全局区域SGA(system global area)的共享池(shared buffer pool)中的内存可以被所有的数据库用户共享. 因此,当你执行一个SQL语句(有时被称为一个游标)时,如果它 和之前的执行过的语句完全相同, ORACLE就能很快获得已经被解析的语句以及最好的执行路径. 这样也会大大的提高效率。

E. 为什么我的SQL数据库变的很慢

第一,检查SQL数据库的日志文件是否过大
第二,检查SQL表中的记录是否过多
第三,整理一下服务器硬盘的碎片
第四,更新硬件~加大内存,增加系统缓存
注意做好数据库系统优化

F. sql 给视图建立聚集索引后 更改其中一个表的内容速度变慢

索引视图是被具体化了的视图,即它已经过计算并存储。可以为视图创建索引,即对视图创建一个唯一的聚集索引。索引视图可以显着提高某些类型查询的性能。索引视图尤其适于聚合许多行的查询。但它们不太适于经常更新的基本数据集。

如果很少更新基础数据,则索引视图的效果最佳。维护索引视图的成本可能高于维护表索引的成本。如果经常更新基础数据,则维护索引视图数据的成本可能超过使用索引视图所带来的性能收益。

如果你经常更新基础表,那么创建索引视图则不太适合,你需要权衡利弊,如果你的确需要更新基表又迫切地需要建立视图索引,那么可以尝试将基础数据以批处理的形式定期更新,甚至在更新前删除所有索引视图,更新完成后再重新生成。这样做可以提高更新的性能。

G. 如何提高sql 视图运行效率

这4个表的连接字段上建索引
然后你视图使用时的where条件中能最大可能筛选数据的那个条件上最好也建个索引,
具体看看执行时的执行计划吧