-
数据库性能优化三:程序操作优化提升性能
数据库优化包含以下三部分,数据库自身的优化,数据库表优化,程序操作优化.此文为第三部分 概述:程序访问优化也可以认为是访问SQL语句的优化,一个好的SQL语句是可以减少非常多的程序性能的,下面列出常用错误习惯,并且提出相应的解决方案一、操作符优化1.IN、NOTIN操作符IN和EXISTS性能有外表和内表区分的,但是在大数据量的表中推荐用EXISTS代替IN。NotIN不走索引的是绝对不能用的,可以用NOTEXISTS代替2.ISNULL或ISNOTNULL操作索引是不索引空值的,所以这样的操作不能使用索引,可以用其他的办法处理,例如:数字类型,判断大于0,字符串类型设置一个默认值,判断是否等于默认值即可3.<>操作符(不等于)不等于操作符是永远不会用到索引的,因此对它的处理只会产生全表扫描...
数据库操作教程 2022-09-23 17:06:12 -
将备份的SQLServer数据库转换为SQLite数据库操作方法
操作方法:先要安装好SQLServer2005,并且记住安装时自己设置的用户名和密码。下面以恢复SQLServer下备份的数据库文件epdmdb20101008.bak为SQLite数据库为例来说明操作的步骤...
数据库操作教程 2022-09-23 17:05:50 -
SQLServer误区30日谈第21天数据损坏可以通过重启SQLServer来修复
误区#21:数据库损坏可以通过重启SQLServer或是Windows,或是附加和分离数据库解决错误SQLServer中没有任何一项操作可以修复数据损坏。损坏的页当然需要通过某种机制进行修复或是恢复-但绝不是通过重启动SQLServer,Windows亦或是分离附加数据库...
数据库操作教程 2022-09-23 17:05:18 -
简化SQLServer备份与还原到云工作原理及操作方法
除了硬盘和磁带,现在您可以使用SQLServer的本机备份功能来备份您的SQLServerDatabase到WindowsAzureBlob存储服务。在此版本中,您可以使用T-SQL和SMO备份到WindowsAzureBlob存储...
数据库操作教程 2022-09-23 17:05:11 -
SQLServer误区30日谈第22天资源调控器可以调控IO
误区#22:资源调控器可以调控IO错误 资源调控器无法调控IO,希望下一个版本的SQLServer支持调控IO,调控IO对于对于减少对于大表的scan操作带来的性能影响很有帮助。 下面列表中的功能资源调控器同样也无法完成:调控BufferPool的内存,内存调控器仅仅可以调控执行计划所占的内存,但对于BufferPool中缓存的数据页是无法调控的可以对多个实例进行当作一个逻辑实体进行资源调控...
数据库操作教程 2022-09-23 17:04:02 -
sql2000清空后让表的id从1开始等数据库操作
truncatetable表名(数据不可恢复性的删除truncate标识列会重排)LinqUtil.Db.ExecuteCommand("TRUNCATETABLEwarehousing");//warehousing为表名,此种删除效率更高,且会清空计数器,但是有外键的表则不能用,可以通过删除外键后使用LinqUtil.Db.ExecuteCommand("deleteioinfo");//因为此种删除不能清空计数器,所以下面还的清空LinqUtil.Db.ExecuteCommand("dbcccheckident(ioinfo,reseed,0)");//清空计数器,ioinfo为表名LinqUtil.Db.SubmitChanges();清空表后执行DBCCCHECKIDENT(表名,reseed,起始值)如:你要把表Employee的ID清空后从1开始DBCCCHECKIDENT(Employee,reseed,0)--你添加了一条数据,从起始值开始加1--------------------------------------------------------------...
数据库操作教程 2022-09-23 17:03:55 -
SQLServer误区30日谈第27天使用BACKUPWITHCHECKSUM可以替代DBCCCheckDB
误区#27:使用BACKUP...WITHCHECKSUM可以替代DBCCCheckDB错误 乍一看,由于BACKUPWITHCHECKSUM会检测所有分配出去的页的校验和的值,这个误区貌似是这么回事,但实际上并不是这么回事,原因如下: 由SQLServer2000或是更早版本升上来的数据库pagechecksums必须开启,在开启后,并不是数据库中所有的页都会被叫上页校验和,当页损坏发生时,IO系统可不会区分损坏的页是有页校验和还是没有校验和的。所以使用BACKUP...WITHCHECKSUM就有可能导致一些损坏页不被发现,造成的后果…… 除此之外,还有一个问题是完整备份的时间间隔相对比较长,假如说一个月,而相对于DBCCCheckDB的最佳实践是一个礼拜,这导致WITHCHECKSUM不能替代CHECKDB...
数据库操作教程 2022-09-23 17:03:22 -
SQLSERVER本地查询更新操作远程数据库的代码
复制代码代码如下:--PKselect*fromsys.key_constraintswhereobject_id=OBJECT_ID('TB')--FKselect*fromsys...
数据库操作教程 2022-09-23 17:01:39 -
SQLServer误区30日谈第3天即时文件初始化特性可以在SQLServer中开启和关闭
本系列文章是我在sqlskill.com的PAUL的博客看到的,很多误区都比较具有典型性和代表性,原文来自T-SQLTuesday#11:Misconceptionsabout....EVERYTHING!!,经过我们团队的翻译和整理发布在AgileSharp和博客园上。希望对大家有所帮助...
数据库操作教程 2022-09-23 17:01:25 -
浅谈SQLServer中的三种物理连接操作(性能比较)
在SQLServer中,我们所常见的表与表之间的InnerJoin,OuterJoin都会被执行引擎根据所选的列,数据上是否有索引,所选数据的选择性转化为LoopJoin,MergeJoin,HashJoin这三种物理连接中的一种。理解这三种物理连接是理解在表连接时解决性能问题的基础,下面我来对这三种连接的原理,适用场景进行描述...
数据库操作教程 2022-09-23 17:01:23 -
SQLServer误区30日谈第8天有关对索引进行在线操作的误区
误区#8:在线索引操作不会使得相关的索引加锁错误! 在线索引操作并不是想象的那么美好。 在线索引操作会在操作开始时和操作结束时对资源上短暂的锁...
数据库操作教程 2022-09-23 17:00:44 -
SQLServerXML数据的五种基本操作
1.xml.exist输入为XQuery表达式,返回0,1或是Null。0表示不存在,1表示存在,Null表示输入为空2.xml.value输入为XQuery表达式,返回一个SQLServer标量值3.xml.query输入为XQuery表达式,返回一个SQLServerXML类型流4.xml.nodes输入为XQuery表达式,返回一个XML格式文档的一列行集5.xml.modify使用XQuery表达式对XML的节点进行insert,update和delete操作...
数据库操作教程 2022-09-23 17:00:31