SQL Server IO 子系统浅究 II
摘要:性能监视器里的IO子系统计数器在运行里面输入”perfmon”,使用性能监视器,可以观察当前的I/O性能情况,确定是否存在I/O方面的问题。在SQL Server上,涉及I/O的计数器有:Average read bytes/sec,平均每秒的读取字节数 Average write bytes/sec,平均每秒的写入字节数Reads/sec, 每秒多少读writes/sec,每秒多少写Disk read bytes/sec, 每秒读取的传输速率Disk write bytes/sec,每秒写入的传输速率Average disk sec/read, 平均每个读花的时间,小于10ms表示性能很好,
阅读全文
SQL Server IO 子系统浅究 I
摘要:作者:obuntu很喜欢SQL Server里面4步定位性能问题的理论,具体如下:1,资源瓶颈i. 内存 ii. CPU iii. IO2, Tempdb瓶颈3,找出执行慢的语句,可以通过三个方面来寻找i. 统计信息 ii. 缺失索引 iii. 阻塞4,缓存执行计划分析更多信息,可以参看此篇文章http://blogs.msdn.com/b/jimmymay/archive/2008/09/01/sql-server-performance-troubleshooting-methodology.aspx可以看到,一遇到系统性能问题时,第一步是确定资源是否存在瓶颈,在CPU,内存,IO 三者之
阅读全文
Transact-SQL编程规范
摘要:Transact-SQL编程规范1. 概述1.1. 基本原则以大小写敏感编写SQL语句。尽量使用Unicode 数据类型。优先使用连接代替子查询或嵌套查询。尽量使用参数化SQL查询代替语句拼接SQL查询。禁止使用[拼音]+[英语]的方式来命名SQL对象或变量。尽量使用存储过程代替SQL语句。1.2. 基本规范建议采用Pascal样式或Camel样式命名数据库对象。大写T-SQL语言的所有关键字,谓词和系统函数。2. 命名规范在一般情况下,采用Pascal样式或Camel样式命名数据库对象,使在开发基于数据库应用程序的时候通过ORM工具生成的数据访问代码不需要调整就符合程序开发语言(比如C#)命
阅读全文
使用SQL除掉文本中特殊的ascll字符比如Enter,Tab,空格键
摘要:在将数据库中的数据导出到Excel中时,如果文本中含有tab键,enter键,空格键,但是放在datatable中或者在datagridview中显示时也无法看出异常。但是将数据导出到Excel或者CSV文件中时,就会出现格式不一致了。怎么用SQL将这些特殊的ASCII字符清除掉呢?下面我提供下我的解决方案:示例在SQL Server 2008中测试通过了。--替换了文本中含有tab键,Enter键,空格键的ascii码select REPLACE(REPLACE(REPLACE(Mobile,CHAR(9),''),CHAR(10),''),CHAR(13),
阅读全文
如何启用SQL Server 2008的FILESTREAM特性
摘要:如何启用SQL Server 2008的FILESTREAM特性今天安装SQL Server 2008的时候没有注意,忘记了启用FILESTREAM特性,因为默认情况下FILESTREAM是禁用的。安装完成后,再导入一个.bak的备份数据库时提示FILESTREAM feature is disabled,到网上搜了一下,原来启用这个特性很简单,只需要两个步骤:1)启用服务器实例上的FILESTREAM(文件流)打开SQL Server配置管理器,在SQL Server服务上点击右键,然后点击打开,在你想要启用FILESTREAM(文件流)的SQL Server实例上点击右键,从右键菜单中选择
阅读全文
SQL Server 2008中输出字符串并换行的方法
摘要:在SQL Server中想输出字符串并换行的方法,示例如下:print '中国'+char(13)+char(10)+'人民'declare @a varchar(20) set @a= 'aaa '+char(13)+char(10)+ 'bbbb ' print @a
阅读全文
[转]SQL Server 2005 设置字符集以及更改排序规则
摘要:1.sp_helpsort SELECT SERVERPROPERTY ('Collation') 查看你的排序规则. 不过你的这个应该和字符集有关.2.更改服务器排序规则 更改 SQL Server 2005 实例的默认排序规则的操作可能会比较复杂,包括以下步骤: 确保具有重新创建用户数据库及这些数据库中的所有对象所需的全部信息或脚本。 使用工具(例如大容量复制)导出所有数据。 删除所有用户数据库。 重新生成在 setup 命令的 SQLCOLLATION 属性中指定新的排序规则的 master 数据库。例如: 复制代码 start /wait setup.exe /qb I
阅读全文
使用C#判断数据库服务器是否已经启动
摘要:在很多项目启动的时候都需要连接到数据库,因此判断数据库服务器是否启动就十分必要了,如何判断数据库服务器是否启动呢?可以通过判断数据库服务是否启动来判断,当然我看了下网上也有人说通过注册表也可以判断,下面我就说说我的实现方式:/// <summary> /// 判断数据库服务是否已经启动,如果已经启动就返回True,否则返回False /// </summary> /// <returns></returns> private bool JudgeDBServerStatus() { bool ExistFlag = false; ServiceC
阅读全文
一个数据库系统的笔试题
摘要:这是我曾经参与某公司面试时,做的一道笔试题,现在拿出来给大家分享下。题目如下:一个刚上线半年的数据库软件系统,在某一天系统突然变的很慢,请分析可能导致这种情况的原因。看到这样一个题目,大家心中会有一个什么样的思路呢?可以先思考下。当然我接下来会告诉大家我是如何解答的,当然我的解答也不一定正确,全面。我分析可能的原因有如下3种:1.分析一下是否有其它的软件系统在对该软件的数据库进行大量的IO操作,结果导致数据库服务器的瓶颈,所以软件系统也变慢了。2.查看下该数据库是否有什么job是定期执行的,比如那种比较耗用资源的job在这个时候突然开始执行了。3.分析软件系统中业务逻辑,同时查看数据库操作层.
阅读全文
sql语句技巧,不敢独享,特此呈上
摘要:以下并非本人整理,但是看后感觉相当不错,特此分享。1、应用程序中,保证在实现功能的基础上,尽量减少对数据库的访问次数;通过搜索参数,尽量减少对表的访问行数,最小化结果集,从而减轻网络负担;能够分开的操作尽量分开处理,提高每次的响应速度;在数据窗口使用SQL时,尽量把使用的索引放在选择的首列;算法的结构尽量简单;在查询时,不要过多地使用通配符如SELECT * FROM T1语句,要用到几列就选择几列如:SELECT COL1,COL2 FROMT1;在可能的情况下尽量限制尽量结果集行数如:SELECT TOP 300COL1,COL2,COL3 FROM T1,因为某些情况下用户是不需要那么多
阅读全文
利用ADO.NET的体系架构打造通用的数据库访问通用类
摘要:在周公的博客上看到了他写的这篇博文,忍不住转载过来了。说明在之前周公曾写过针对不同数据库的数据库访问通用类,如针对SQLite的、针对Access的、针对Oracle的、针对SQL Server的。总结了这些通用类的通用方法,其实无非就是针对不同类型的数据库创建Connection、Command、DataAdapter及DataReader,然后对外提供范围ExecuteTable(),ExecuteDataReader、ExecuteScalar()及ExecuteNonQuery()方法,有了这四个方法我们就可以完成针对数据库的所有操作了。在之前周公就曾经想过将这些数据库访问通用类提炼出
阅读全文
[置顶]常用存储过程集锦
摘要:收集的常用存储过程,都是一些mssql常用的一些,大家可以根据需要选择使用。 =================分页========================== /*分页查找数据*/ CREATE PROCEDURE [dbo].[GetRecordSet] @strSql varchar(8000),--查询sql,如select * from [user] @PageIndex int,--查询当页号 @PageSize int--每页显示记录 AS set nocount on declare @p1 int declare @currentP...
阅读全文
[置顶] 常用存储过程集锦
摘要:收集的常用存储过程,都是一些mssql常用的一些,大家可以根据需要选择使用。 =================分页========================== /*分页查找数据*/ CREATE PROCEDURE [dbo].[GetRecordSet] @strSql varchar(8000),--查询sql,如select * from [user] @PageIndex int,--查询当页号 @PageSize int--每页显示记录 AS set nocount on declare @p1 int declare @currentP...
阅读全文
[C#]分享一个以前的项目使用的DataBaseAccess类
摘要:最近在整理以前的资料时,看到了以前我们在项目中经常用的一个数据库访问类,虽然现在已经可以用代码生成工具生成比较完整的数据库访问类,但是这个类在我们以前的项目中久经考验,所以我觉得还是比较好用,废话不多说了,上代码://======================================================================//// filename : DataBaseAccess.cs//// description: 1. data base access operation class DataBaseAccess.// 2. data base acc
阅读全文
SQL Server2005创建新数据库时不允许创建新数据库的问题
摘要:今天早上来公司后,突然发现SQL Server2005出了问题,在管理器中居然不能创建新数据库了,使用SQL语句创建也不行,昨天还好好的,还弹出了如下对话框:使用SQL语句创建SQL Server则显示如下错误:不允许创建新数据库消息 3609,级别 16,状态 2,第 2 行事务在触发器中结束。批处理已中止。在百度,Google了很久后没有找到解决方案,不得已将SQL Server卸载了并重新安装了一遍,问题得到了解决。
阅读全文
在本机通过SQL远程操作数据库
摘要:/*在本机通过SQL远程操作数据库@@@@@@@@@@@@@@@@@@@@@@@@@@*/declare @ServerName sysname declare @UserName sysname declare @Password sysname --初始化连接信息 set @ServerName='192.168.223.90\sql2008' set @UserName='sa'set @Password='Wj1234567892' --打开连接 IF not EXISTS (select srvid from master.dbo.sy
阅读全文
构造获取分页操作SQL语句
摘要:构造获取分页操作SQL语句 /// <summary> /// 获取分页操作SQL语句(对于排序的字段必须建立索引,优化分页提取方式) /// </summary> /// <param name="tblName">操作表名称</param> /// <param name="fldName">排序的索引字段</param> /// <param name="PageIndex">当前页</param> /// <param nam
阅读全文
怎样才能充分利用SQL索引
摘要:怎样才能充分利用SQL索引 背景:目前WEB的普及太快,很多网站都会因为大流量的数据而发生服务器习惯性死机,一个查询语句只能适用于一定的网络环境.没有优化的查询当遇上大数据量时就不适用了. 本文主旨:讨论什么情况下能利用上索引. 索引:创建索引可以根据查询业务的不同分为两种:单一列的索引,联合索引. 顾名思义,单一列索引就是指在表的某一列上创建索引,联合索引是在多个列上联合创建索引. 优缺点比较: 1):索引所占用空间:单一列索引相对要小. 2):索引创建时间:单一列索引相对短. 3):索引对insert,update,delete的影响程序:单一列索引要相对低. 4):在多条件查询时...
阅读全文
执行SQL语句脚本文件
摘要:在项目中关于执行SQL语句的底层方法的通用类很多,但是很少有提供执行SQL脚本的的方法,曾经在项目中有功能需要能直接执行SQL脚本的方法,经过项目的实践检验,方法比较实用,现在将代码贴出来给大家分享下:/// <summary> /// 执行SQL语句脚本文件(带注释,带Go) /// </summary> /// <param name="sqlFileName">sql脚本文件路径</param> public static int ExecuteSQLFile(String sqlFileName) { int icou
阅读全文
查询SQL Server数据库中的用户表的数量的问题
摘要:今天在开发时,遇到要统计SQL Server 2005中数据库表的个数的问题。于是自己写下SQL:select count(1) from sysobjects where XTYPE='u',一执行,发现查询的得到表的个数比实际的用户表的个数多了一个。仔细一看发现结果中多了条数据。图示如下:其中sysdiagrams并不是用户表,而是数据库的关系图。可是我也没有建数据库的关系图,原来自己在操作SSMS时不小心点击了当前数据库下的数据库关系图,图示如下:然后选择了是,结果就出现上面查询得出的结果。就此问题的答案揭晓了。于是我将SQL查询语句改了下,可以避免这种情况了。只统计出用
阅读全文