企业建站用什么主机,手表网站十大品牌,html做网站的原则,上海公司车牌最新价格SQL Server数据库查询速度慢的原因有很多#xff0c;常见的有以下几种#xff1a;1、没有索引或者没有用到索引(这是查询慢最常见的问题#xff0c;是程序设计的缺陷)2、I/O吞吐量小#xff0c;形成了瓶颈效应。3、没有创建计算列导致查询不优化。4、内存不足5、网络速度慢…SQL Server数据库查询速度慢的原因有很多常见的有以下几种1、没有索引或者没有用到索引(这是查询慢最常见的问题是程序设计的缺陷)2、I/O吞吐量小形成了瓶颈效应。3、没有创建计算列导致查询不优化。4、内存不足5、网络速度慢6、查询出的数据量过大(可以采用多次查询其他的方法降低数据量)7、锁或者死锁(这也是查询慢最常见的问题是程序设计的缺陷)8、sp_lock,sp_who,活动的用户查看原因是读写竞争资源。9、返回了不必要的行和列10、查询语句不好没有优化●可以通过以下方法来优化查询1、把数据、日志、索引放到不同的I/O设备上增加读取速度以前可以将Tempdb应放在RAID0上SQL2000不在支持。数据量(尺寸)越大提高I/O越重要。2、纵向、横向分割表减少表的尺寸(sp_spaceuse)3、升级硬件4、根据查询条件建立索引优化索引、优化访问方式限制结果集的数据量。注意填充因子要适当(最好是使用默认值0)。索引应该尽量小使用字节数小的列建索引好(参照索引的创建),不要对有限的几个值的字段建单一索引如性别字段。5、提高网速。6、扩大服务器的内存Windows 2000和SQL server 2000能支持4-8G的内存。配置虚拟内存虚拟内存大小应基于计算机上并发运行的服务进行配置。运行Microsoft SQL Server?2000时可考虑将虚拟内存大小设置为计算机中安装的物理内存的1.5倍。如果另外安装了全文检索功能并打算运行Microsoft搜索服务以便执行全文索引和查询可考虑将虚拟内存大小配置为至少是计算机中安装的物理内存的3倍。将SQL Server max server memory服务器配置选项配置为物理内存的1.5倍(虚拟内存大小设置的一半)。7、增加服务器CPU个数;但是必须明白并行处理串行处理更需要资源例如内存。使用并行还是串行程是MsSQL自动评估选择的。单个任务分解成多个任务就可以在处理器上运行。例如耽搁查询的排序、连接、扫描和GROUP BY字句同时执行SQL SERVER根据系统的负载情况决定最优的并行等级复杂的需要消耗大量的CPU的查询最适合并行处理。但是更新操作 UPDATE,INSERTDELETE还不能并行处理。8、如果是使用like进行查询的话简单的使用index是不行的但是全文索引耗空间。like a% 使用索引 like %a 不使用索引用 like %a% 查询时查询耗时和字段值总长度成正比,所以不能用CHAR类型而是VARCHAR。对于字段的值很长的建全文索引。9、DB Server和APPLication Server 分离;OLTP和OLAP分离10、分布式分区视图可用于实现数据库服务器联合体。联合体是一组分开管理的服务器但它们相互协作分担系统的处理负荷。这种通过分区数据形成数据库服务器联合体的机制能够扩大一组服务器以支持大型的多层 Web 站点的处理需要。有关更多信息参见设计联合数据库服务器。a、在实现分区视图之前必须先水平分区表b、在创建成员表后在每个成员服务器上定义一个分布式分区视图并且每个视图具有相同的名称。这样引用分布式分区视图名的查询可以在任何一个成员服务器上运行。系统操作如同每个成员服务器上都有一个原始表的复本一样但其实每个服务器上只有一个成员表和一个分布式分区视图。数据的位置对应用程序是透明的。11、重建索引 DBCC REINDEX ,DBCCINDEXDEFRAG,收缩数据和日志 DBCC SHRINKDB,DBCC SHRINKFILE. 设置自动收缩日志.对于大的数据库不要设置数据库自动增长它会降低服务器的性能。在T-sql的写法上有很大的讲究下面列出常见的要点首先DBMS处理查询计划的过程是这样的1、查询语句的词法、语法检查2、将语句提交给DBMS的查询优化器3、优化器做代数优化和存取路径的优化4、由预编译模块生成查询规划5、然后在合适的时间提交给系统处理执行6、最后将执行结果返回给用户。其次看一下SQL SERVER的数据存放的结构一个页面的大小为8K(8060)字节8个页面为一个盘区按照B树存放。12、Commit和rollback的区别Rollback:回滚所有的事物。Commit:提交当前的事物没有必要在动态SQL里写事物如果要写请写在外面如begin tran exec(s) commit trans或者将动态SQL 写成函数或者存储过程。13、在查询Select语句中用Where字句限制返回的行数,避免表扫描,如果返回不必要的数据浪费了服务器的I/O资源加重了网络的负担降低性能。如果表很大在表扫描的期间将表锁住禁止其他的联接访问表,后果严重。14、SQL的注释申明对执行没有任何影响15、尽可能不使用光标它占用大量的资源。如果需要row-by-row地执行尽量采用非光标技术如在客户端循环用临时表Table变量用子查询用Case语句等等。游标可以按照它所支持的提取选项进行分类只进必须按照从第一行到最后一行的顺序提取行。FETCH NEXT 是唯一允许的提取操作也是默认方式。可滚动性可以在游标中任何地方随机提取任意行。游标的技术在SQL2000下变得功能很强大他的目的是支持循环。有四个并发选项READ_ONLY不允许通过游标定位更新(Update)且在组成结果集的行中没有锁。OPTIMISTIC WITH valueS乐观并发控制是事务控制理论的一个标准部分。乐观并发控制用于这样的情形即在打开游标及更新行的间隔中只有很小的机会让第二个用户更新某一行。当某个游标以此选项打开时没有锁控制其中的行这将有助于最大化其处理能力。如果用户试图修改某一行则此行的当前值会与最后一次提取此行时获取的值进行比较。如果任何值发生改变则服务器就会知道其他人已更新了此行并会返回一个错误。如果值是一样的服务器就执行修改。