如何提高SQL Server大数据条件下的查询速度

如何提高SQL Server大数据条件下的查询速度,第1张

1关于索引优化

建索引的选择必须结合SQL查询、修改、删除语句的需要,一般的说法是在WHERE里经常出现的字段建索引。如果在WHERE经常是几个字段一起出现而且是用AND连接的,那就应该建这几个字段一起的联合索引,而且次序也需要考虑,一般是最常出现的放前面,重复率低的放前面。

SQL

Server提供了一种简化并自动维护数据库的工具。这个称之为数据库维护计划向导(Database

Maintenance

Plan

Wizard

,DMPW)的工具也包括了对索引的优化。如果你运行这个向导,你会看到关于数据库中关于索引的统计量,这些统计量作为日志工作并定时更新,这样就减轻了手工重建索引或者DBCC

INDEXDEFRAG所带来的工作量。如果你不想自动定期刷新索引统计量,你还可以在DMPW中选择重新组织数据和数据页,这将停止旧有索引并按特定的填充因子重建索引。

2

改善硬件(双CPU,Raid

5,增加内存)

tempdb这个临时数据库,它对性能的影响较大。tempdb和其他数据库一样可以增大,可以缩小。当数据文件需要增长的时候,通常不能保持剩余部分的连续性。这时文件就会产生碎片,这种碎片会造成性能下降。这种碎片属于外来性碎片。要阻止在tempdb中产生外来性碎片,必须保证有足够的硬盘空间。一般将tempdb的容量放到平均使用容量。而你也应该允许tempdb自动增长,比如你有个一个超大的join *** 作,它建立了一个超过tempdb容量的时候,该查询将失败。你还要设置一个合理的单位增长量。因为如果你设得太小,将会产生许多外来性碎片,反而会占用更多资源。sqlserver调优最有效的做法之一,就是把争夺资源的 *** 作独立出去。tempdb就是一个需要独立出去的部分而tempdb和其他系统库一样是公用的,是存取最可能频繁的库,所有处理临时表、子查询、GROUP

BY、排序、DISTINCT、连接等等。它最适合放到一个具有快速读写能力的设备上。比如RAID0卷或RAID0+1卷上。

查询语句一定要使用存储过程;

3、查询尽量使用TOP子句

4将表按一定的约束分成子表,(如按分类)创建约束,在用Like

时,先用分类

and

like

,

应该可能解决问题

而且效果立秆见影!(你要确定SQL会认识你建的分区视图)我一个表有上百万的记录(700兆),用分区视图后,查询速度基本跟10万行一样

如果还是太慢,还可以考滤分布式分区视图!这总可以解决问题了吧!

关键在于你能否把大表按某种约束分解成子表

把视图的代码 贴进括号里面

select t

(select a,b on ) as t

where t>

这样就行了

你应该是 查出数据需要再赛选一下对吧

对表截取字符串用来关联另两个表的笛卡尔乘积的,可以对这个截取字符串的 *** 作建立函数索引,使两者之间的关联用到索引

另外,那个1000万数据的表,可以看看是否可以分区,

在视图查询的时候,可以考虑对这个千万级的表进行并发查询,充分利用cpu

另外,此三表的统计信息在数据量更新较大的情况下也要注意更新统计信息

一、方式不同

1、sql查询:不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统。

2、视图查询:视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表。

二、特点不同

1、sql查询:相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。

2、视图查询:视图是从一个特定的角度来查看数据库中的数据。从数据库系统内部来看,一个视图是由SELECT语句组成的查询定义的虚拟表。

三、功能不同

1、sql查询:对基本表和视图的数据插入、删除和修改,特别是具有很强的数据查询功能。

2、视图查询:视图的筛选可以来自当前或其它数据库的一个或多个表,或者其它视图。分布式查询也可用于定义使用多个异类源数据的视图。

参考资料来源:百度百科-视图sql

参考资料来源:百度百科-结构化查询语言

sql效率比较快,存储过程的好处是不仅快且更安全,但移植性差。视图可以封装查询的复杂性,就像面向对象里类的概念一样。

拓展回答:

sql一般指结构化查询的语言特点:

一体化:SQL集数据定义DDL、数据 *** 纵DML和数据控制DCL于一体,可以完成数据库中的全部工作。

使用方式灵活:它具有两种使用方式,即可以直接以命令方式交互使用;也可以嵌入使用,嵌入到C、C++、FORTRAN、COBOL、JAVA等主语言中使用。

非过程化:只提 *** 作要求,不必描述 *** 作步骤,也不需要导航。使用时只需要告诉计算机“做什么”,而不需要告诉它“怎么做”。

语言简洁,语法简单,好学好用:在ANSI标准中,只包含了94个英文单词,核心功能只用6个动词,语法接近英语口语。

视图是指计算机数据库中的视图,是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。

但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。视图有很多优点,主要表现在:

视点集中

简化 *** 作

定制数据

合并分割数据

安全性

逻辑数据独立性

以上就是关于如何提高SQL Server大数据条件下的查询速度全部的内容,包括:如何提高SQL Server大数据条件下的查询速度、求助,关联视图较多的SQL查询优化、Sql优化,查询三个视图,查询100条数据居然要1分钟。求高手优化,在线等。。。。。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9721716.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存