-
如何调优SQLServer查询
在今天的文章里,我想给你展示下,当你想对特定查询创建索引设计时,如何把你的工作和思考过程传达给查询优化器。下面就一起来探讨一下吧!有问题的查询我们来看下列查询:DECLARE@iINT=999SELECTSalesOrderID,SalesOrderDetailID,CarrierTrackingNumber,OrderQty,LineTotalFROMSales.SalesOrderDetailWHEREProductID<@iORDERBYCarrierTrackingNumberGO如你所见,这里用了一个本地变量与一个不等于谓语来从Sales.SalesOrderDetail表来获取一些记录...
数据库操作教程 2022-09-23 17:39:08 -
Transactionalreplication(事务复制)详解之如何跳过一个事务
在transactionalreplication,经常会遇到数据同步延迟的情况。有时候这些延迟是由于在publication中执行了一个更新,例如updatetasetcol=?Where?,这个更新包含巨大的数据量...
数据库操作教程 2022-09-23 17:38:49 -
SqlServer如何通过SQL语句获取处理器(CPU)、内存(Memory)、磁盘(Disk)以及操作系统相关信息
在SQLSERVER中如何通过SQL语句获取服务器硬件和系统信息呢?下面介绍一下如何通过SQL语句获取处理器(CPU)、内存(Memory)、磁盘(Disk)以及操作系统相关信息。如有不足和遗漏,敬请补充...
数据库操作教程 2022-09-23 17:37:39 -
如何使用VisualStudio2010在数据库中生成随机测试数据
测试在项目中是很重要的一个环节,在VisualStudio2010中,在测试方面已经有很好的支持了,比如有单元测试,负载测试等等。在数据测试的方面,VisualStudio2010,还支持对数据库进行多种测试,其中一个很好用的功能是能为开发者在测试阶段,大量方便地为数据库生成随机的数据,而且还可以自己指定生成数据的规则,十分方便,这就让在测试过程中,开发者能有更充足的数据样本对项目进行测试...
数据库操作教程 2022-09-23 17:33:17 -
如何查看SQLSERVER中某个查询用了多少TempDB空间
在SQLServer中,TempDB主要负责供下述三类情况使用:内部使用(排序、hashjoin、worktable等)外部使用(临时表,表变量等)行版本控制(乐观并发控制) 而对于内部使用,一些比较复杂的查询中由于涉及到了大量的并行、排序等操作时就需要大量的内存空间,每一个查询在开始时都会由SQLServer预估需要多少内存,在具体的执行过程中,如果授予的内存不足,则需要将多出来的部分由TempDB处理,这也就是所谓的SpilltoTempDB。 通过下述语句可以观察到某个查询对TempDB造成了多少读写:DECLARE@readBIGINT,@writeBIGINT;SELECT@read=SUM(num_of_bytes_read),@write=SUM(num_of_bytes_written)FROMtempdb.sys.database_filesASDBFJOINsys.dm_io_virtual_file_stats(2,NULL)ASFSONFS.fil...
数据库操作教程 2022-09-23 17:31:48 -
教你如何看懂SQLServer查询计划
对于SQLServer的优化来说,优化查询可能是很常见的事情。由于数据库的优化,本身也是一个涉及面比较的广的话题,因此本文只谈优化查询时如何看懂SQLServer查询计划...
数据库操作教程 2022-09-23 17:26:01 -
SQLServer日志清空语句(sql2000,sql2005,sql2008)
SQLServer日志清空方法 在查询分析器中顺序执行以下三步,其中databasename为你的数据库文件名sql2000日志清空可以将jb51.ldf文件变得很小,方便备份数据库等,在sqlserver查询分析器中执行即可。复制代码代码如下:DUMPTRANSACTION[jb51]WITHNO_LOGBACKUPLOG[jb51]WITHNO_LOGDBCCSHRINKDATABASE([jb51])1.清空日志:DUMPTRANSACTION[databasename]WITHNO_LOG 2.截断事务日志:BACKUPLOG[databasename]WITHNO_LOG 3.收缩数据库:DBCCSHRINKDATABASE([databasename]) 注:数据库名陈最好加上[]SQLServer数据库日志清理清除sqlserver2005日志有时候当系统运行时间比较长的时候,我们把备份的数据库还原的时候发现,数据库中数据文件和日志文件变的好大,特别是日志文件...
数据库操作教程 2022-09-23 17:23:59 -
解析如何在sqlserver代理中配置邮件会话
网上提供了很多sqlserver发送邮件的文章,转载居多,大部分介绍win2000+outlook2003环境,在操作系统和office已经更新换代的今天,意义不大。现在工作中碰到了需要利用sqlserver发送邮件的问题,特整理文字如下:目的:利用Sqlserver代理的邮件会话建立操作员监控作业完成情况测试环境: 操作系统:windows2003/windowsxp OutLook:OutLook2003 测试的电子邮件:[email protected]第一步:建配置文件开始->控制面版->邮件>双击邮件->添加->配置文件名称(mySqlFile)添加新电子邮件帐户->选择POP3(P)->用户信息:姓名:yyy邮件地址:[email protected]登录信息:用户名:yyy密码:****接收邮件服务器(POP3)(I):pop3.xxx.com发送邮件服务器(SMTP)(O):smtp.xxx.com点击其他设置->发送服务器->选中(我的发送服务器(SMTP)要求验证)->选择登录使用用户名:yyy密码:...
数据库操作教程 2022-09-23 17:21:22 -
MSSQL数据库排序规则如何更改
1.sp_helpsortSELECTSERVERPROPERTY('Collation')查看你的排序规则.不过你的这个应该和字符集有关.2.更改服务器排序规则更改SQLServer2005实例的默认排序规则的操作可能会比较复杂,包括以下步骤:确保具有重新创建用户数据库及这些数据库中的所有对象所需的全部信息或脚本。使用工具(例如大容量复制)导出所有数据...
数据库操作教程 2022-09-23 17:21:18 -
探讨:如何查看和获取SQLServer实例名
一、查看實例名時可用1、服务—SQLServer(实例名),默认实例为(MSSQLSERVER)或在连接企业管理时-查看本地实例2、通過注冊表HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/MicrosoftSQLServer/InstalledInstance3、用命令sqlcmd/osqlsqlcmd-Lsqlcmd-Lcosql-L获取可用實例,以下舉一個例子,根據自己情況改复制代码代码如下:DECLARE@TableTABLE(instanceName sysnameNULL)[email protected]_cmdshell'sqlcmd-Lc'--LEFT(@@serverName,CHARINDEX('/',@@serverName+'/')-1)替代為本機名就行了,根據實例命名規則判斷SELECT*FROM@TableWHEREinstanceNameLIKE LEFT(@@serverName,CHARINDEX('/',@@serverName+'/')-1)+'%'二、--1...
数据库操作教程 2022-09-23 17:18:03 -
基于SQLServer中如何比较两个表的各组数据图解说明
开始前一阵子,在项目中碰到这样一个SQL查询需求,有两个相同结构的表(table_left&table_right),如下:图1.检查表table_left的各组(groupId),是否在表table_right中存在有一组(groupId)数据(data)与它的数据(data)完全相等.如图1.可以看出表table_left和table_right存在两组数据完整相等:图2.分析从上面的两个表,可以知道它们存放的是一组一组的数据;那么,接下来我借助数学集合的列举法和运算进行分析。先通过集合的列举法描述两个表的各组数据:图3.这里只有两种情况,相等和不相等...
数据库操作教程 2022-09-23 17:16:46 -
如何将sql执行的错误消息记录到本地文件中实现过程
其实大家都知道sql语句的错误信息都可以在sys.messages表里面找到如:如果在执行语句在try...catch中我们可以通过以下方法获取错误信息。sql语句如下:复制代码代码如下:BEGINTRYSELECT3/0ENDTRYBEGINCATCHDECLARE@errornumberINTDECLARE@errorseverityINTDECLARE@errorstateINTDECLARE@errormessageNVARCHAR(4000)SELECT@errornumber=ERROR_NUMBER(),@errorseverity=ERROR_SEVERITY(),@errorstate=ERROR_STATE(),@errormessage=ERROR_MESSAGE()SELECT@errornumber,@errorseverity,@errorstate,@errormessageRAISERROR(@errormessage,--Messagetext,@errorseverity,--Severity,@errorstate,--State,@errornu...
数据库操作教程 2022-09-23 17:13:40