问大神石沫:如何判断MSSQL数据库磁盘出现了瓶颈? 石沫(A1):您好,您的问题非常好,SQL SERVER提供了很多关于I/O压力的性能计数器,请选择性能计算器PhysicalDisk(LogicalDisk),根据我们的经验,如下指标的阈值可以帮助你判断IO是否存在压力:  1.  %Disk Time :这个是磁盘时间百分比,这个平均值应该在85%以下  2. Current Disk Queue Length:未完成磁盘请求数量,这个每个磁盘平均值应该小于2.   3. Avg. Di…
数据库优化的目标无非是避免磁盘I/O瓶颈.减少CPU利用率和减少资源竞争.1. 在业务密集的SQL当中尽量不采用IN操作符2.  不使用not in 因为它不能应用表的索引.用not exists 或(外连接+判断为空)代替3.  不使用<>,因为用它只会产生全表扫描.(a<>0改为a>0 or a<0)4.  不使用 is null 或 is not null 判断字段是否为空一般不用到索引.(a is not null 改为a>0)5.  用a>=3代替…
课前小知识普及:MSSQL和SQL Server是同一个软件,叫法不同而已,MSSQL全称是Microsoft SQL Server,MSSQL是简写,有些人则喜欢直接叫SQL Server,我就比较喜欢这种叫法,有韵味... 最近有用户在使用PHPWAMP的时候,向我咨询一个问题,就是关于PHP如何连接MSSQL数据库. 平时我们搭建网站通常是PHP+Mysql数据库, 不过在项目中,我们有时候必须要用到PHP+MSSQL数据库,那应该怎么办呢? 本文案例采用的PHP集成环境是我最新发布的版本…
转发自:http://blog.csdn.net/lccee/article/details/54289076 课前小知识普及:MSSQL和SQL Server是同一个软件,叫法不同而已,MSSQL全称是Microsoft SQL Server,MSSQL是简写,有些人则喜欢直接叫SQL Server,我就比较喜欢这种叫法,有韵味... 最近有用户在使用PHPWAMP的时候,向我咨询一个问题,就是关于PHP如何连接MSSQL数据库. 平时我们搭建网站通常是PHP+Mysql数据库, 不过在项目中…
在日常应用中通常需要多人执行多表的操作,比如售票系统的售票功能,这时候就涉及到数据读取的一致性问题,好在MSSQL数据库也提供了事务处理功能,这里就简单的记下 语法: Begin Tran //事务处理语句 if判断 begin { RollBack tran } end else bein Commit tran end 注:事务的begin没有end来配对 下面以旅客购票来举例:Tickets表为车票余量表(id,remaining),剩余票数有一个约束不能小于0,UserTicket为旅客…
一个防止误删MSSQL数据库的方法 环境:Windows2008 R2 .SQL 2012 今天发现一个有趣的现象,之前数据库服务器的其中几个数据库做过镜像,不过现在已经删除了,今天又要在那台服务器上为一个库搭建镜像 搭建镜像的过程中,把镜像机器的ip写成了自己的ip,结果发现命令成功执行 --备机上执行 USE [master] GO ALTER DATABASE [CT_DB] SET PARTNER = 'TCP://192.168.1.106:5022'; --主机服务器的ip 192.…
转几个关于MSSQL数据库基础的文章: sql server系统表详细说明 SQL Server中系统数据库介绍 SQL Server中的角色(服务器级别和数据库级别角色)…
在PHP中使用了MSSQL数据库,恰巧数据库中又使用了Text类型字段,于是问题产生了.每次从数据库中查询得到的数据总是被莫名的截断,一开始是以为我使用的PHP框架中对字符串的长度有所限制,后来发现这是个较愚蠢的想法,因为在提交数据时可以将字符串内容全部的提交到数据库中,只是读取时发生此现象,于是上网搜寻是否有类似的问题.运气还挺不错,第一次搜索就找到了解决的办法,遂决定将其转贴在我的Blog中,供自己和广大PHP爱好者的不时之需.   有两种解决方案,如下:      一.修改php.ini来…
 本例子只作为简单的引导,实现一个简单的查询: <!DOCTYPE HTML> <html lang="en-US"> <head> <title>php中mssql数据库简单查询完整实例</title> <meta charset="gb2312"> <meta name="author" content="yanue" /> <met…
查看数据库磁盘使用多少G: / / ) G from dba_segments t where t.owner = 'TPSC' group by OWNER, t.segment_name, t.segment_type order by G desc;…
采集自互联网,未验证..... 如果我们使用虚拟主机为网站空间,这时如果需要备份和还原msssql数据库是非常麻烦,如果在网站后台管理当中加入对msssql数据库的操纵,可以使我们对数据库的备份和还原操作很方便,只要一键便可生成. C#(asp.net)备份mssql数据库代码 string path = CreatePath(); SQLDMO.Backup oBackup = new SQLDMO.BackupClass(); SQLDMO.SQLServer oSQLServer = ne…
MSSQL数据库迁移到Oracle 最近要把一个MSSQL数据库迁移到Oracle上面,打算借助PowerDesigner这个软件来实现;今天简单研究一下这个软件的运用;把一步简单的操作步骤记录下来: 第一步:建立相应的链接 1:首先我们打开PowerDesigner,并新建一个Physical Data Model 2:工具栏里的"数据库"-->Configure Connections 3:点击新建一个数据库连接 4:选择系统数据源,然后下一步 5:因为我们这个源数据是MSS…
Codesmith怎么判断sqlserver数据库字段是不是标识自增字段 使用ExtendedProperty扩展信息判断 CS_isIdentity:是否为标识符,不支持Access CS_isComputed:是否为计算列 CS_isDeterministic:是否确定... CS_IdentitySeed::标识列种子数 CS_IdentityIncrement:标识列递增量 CS_Default:列的默认值 CS_isRowGuidCol 例子: <% foreach(ColumnSch…
将mssql数据库高版本迁移到低版本 在低版本目标数据库中创建目标空数据库[TargetDb] ,注意新建数据库即可,不要创建任何表 在低版本数据库中,选中[服务器对象=>链接服务器] 右键[新建链接服务器] 填入链接服务器IP+端口 选SQL Server ;PS:貌似其他数据库也可以,这里不做展开,也没验证过 选择安全性,使用此安全上下文建立链接;敲入账号密码,点确定 这个时候,在SSMS中的资源管理器窗口就会发现新增的链接服务器,没看见的刷新 编写一个SQL 语句 PS:貌似其他数据库也可…
如何从40亿整数中找到不存在的一个 前言 给定一个最多包含40亿个随机排列的32位的顺序整数的顺序文件,找出一个不在文件中的32位整数.(在文件中至少确实一个这样的数-为什么?).在具有足够内存的情况下,如何解决该问题?如果有几个外部的“临时”文件可用,但是仅有几百字节的内存,又该如何解决该问题? 分析 这仍然是<编程珠玑>中的一个问题.前面我们曾经提到过<位图法>,我们使用位图法解决了这个问题.32位整型最多有4294967296个整数,而很显然40亿个数中必然会至少缺一个.我们…
LinUX(centOS6.8)系统ThinkPHP5链接MsSQL数据库的pdo_dblib扩展第一步 下载并安装freetds-current.tar.gz下载地址如下ftp://ftp.freetds.org/pub/freetds/current/freetds-current.tar.gz1.1下载解压并进入该文件夹 (其实你也可以解压以后再上传到linux服务器) wget ftp://ftp.freetds.org/pub/freetds/current/freetds-curre…
Atitit.mssql 数据库表记录数and 表体积大小统计 1. EXEC   sp_MSforeachtable   "EXECUTE   sp_spaceused   '?'" 最后一种方法是利用隐藏未公开的系统存储过程sp_MSforeachtable CREATE TABLE  #temp  (TableName  VARCHAR  (255),  RowCnt  INT) EXEC  sp_MSforeachtable  'INSERT  INTO  #temp  SEL…
上一篇文章采用的PowerDesigner实现对MSSQL数据库迁移到Oracle,后来博友建议用ESF Database Migration Toolkit进行迁移会更加简单方便,本文就是通过一个实例来讲解:文章后面是从网络上整理所得简单介绍Oracle与MSSQL类型的对照: 1:首先我们MSSQL创建一个数据库,并在里面建一张User的表,表相应字段如下图 2:接着打开ESF Database Migration Toolkit选择我们源数据库的类型还有其它相应的参数信息 3:下一步开始针…
TOleDBMSSQLConnectionProperties驱动MSSQL数据库 为了让MORMOT可以驱动所有版本的MSSQL,需要改用SQLOLEDB,因为所有的WINDOWS操作系统里面都提供了SQLOLEDB. MORMOT1.18以上版本需要改SynOleDB.pas源码: procedure TOleDBMSSQLConnectionProperties.SetInternalProperties;begin OnCustomError := MSOnCustomError; if…
0 MSSQL数据库备份 1 SQLAgent配置 2 设置连接属性 3 输入SA账号密码 4 SQL备份脚本配置 5 生成SQL全量备份脚本 6 生成SQL差异备份脚本 7 修改SQL差异备份脚本 8 SQL全量备份策略 9 SQL差异备份策略 10 SQL全量备份 11 SQL差异备份 12 MSSQL数据库恢复 13 生成恢复脚本 14 备份脚本修改 15 执行恢复操作 ------------------------------------------------------------…
原文:提高MSSQL数据库性能(1)对比count(*) 和 替代count(*) 文章准备的数据库: Atricles 表   数据量60690000条数据 ArticleID 主键自增列+自动建立的聚集索引,ATitle nvarchar(100)  Acontent varchar(2000) CreateDate DateTime(8) 首先要说的是:select count(*) from table,那么count(*) 和 count(主键) count(文本列)效率比较:  这里…
Prometheus时序数据库-磁盘中的存储结构 前言 之前的文章里,笔者详细描述了监控数据在Prometheus内存中的结构.而其在磁盘中的存储结构,也是非常有意思的,关于这部分内容,将在本篇文章进行阐述. 磁盘目录结构 首先我们来看Prometheus运行后,所形成的文件目录结构 在笔者自己的机器上的具体结构如下: prometheus-data |-01EY0EH5JA3ABCB0PXHAPP999D (block) |-01EY0EH5JA3QCQB0PXHAPP999D (block)…
我们一般启用sql server数据库要么选择安装SQL Server实例和管理工具(SSMS),要么用vs自带的数据库.如今net跨平台成为趋势,今天给大家介绍另一种我最近在玩的方式,即使用docker创建并启用sql数据库. 本章介绍了在window10专业版下如何利用docker创建mssql数据库,包括以下主题: 安装并验证docker 利用docker创建mssql实例 使用vs2022连接sql 首先我们看下sql自带的数据库管理工具,打开vs2022-视图-SQL Server对象…
MSSQL自带了一个样例数据库pubs,就拿这个举例好了. 首先,来一次完全备份.对于数据量很大的数据库,这样的操作当然很费时间.所以我们采用每天凌晨4点一次完全备份,每个小时一个差异备份,每分钟一次日志备份.这样数据的丢失率就是一分钟了. 在企业管理器中右击要备份的数据库pubs/所有任务.备份数据库. 因为第一次必须是完全备份,以后的差异备份是在完全备份的基础上恢复的.没有这一次完全备份就像无本之木,无源之水.是没有意义的. 所以备份类型一定选择“数据库-完全”.目的是指备份数据到磁盘的哪一…
与Oracle数据库类似,微软数据库产品MSSQL也有诸多后台进程来保证数据库系统的高效正常运转,由于MSSQL采用的是线程模型,应该叫做后台线程,为了大家易于理解,我们在暂且称之为后台进程,下面我们就来简要看一下: 1. 数据写相关进程 1)   Lazy writer:该进程用来确保系统缓冲区(buffer pool)中有足够的自由内存,该进程定期扫描缓冲内存页,以发现不常使用的内存页并将其移出缓冲区,期间,会先将脏页数据写出到磁盘并移除缓冲区. 2)   Eager writer:和laz…
下面为您介绍sql下用了判断各种资源是否存在的代码,需要的朋友可以参考下,希望对您学习sql的函数及数据库能够有所帮助.库是否存在if exists(select * from master..sysdatabases where name=N'库名')print 'exists'elseprint 'not exists'----------------- 判断要创建的表名是否存在if exists (select * from dbo.sysobjects where id = object…
统一库名命名规则. 格式:公司简称_库名 如:Supesoft_Member  会员库 建库时,最好将初始大小设置为你认为可允许的最大容量.避免因为库太小,而出现系统自增加.在系统运行中,自动增加空间会影响数据库性能.另外,增加的空间可能和原来的空间不是在磁盘的连续存放位置,从而增加数据的访问时间. 建库时,有一个排规则.会对影响数据的存储格式.mssql默认的排序规则是不区分大小写和假名.像帐号系统中的用户名字段,区分和不区分就影响很大.排序规则在建库时可以选择.建好库后,建表时会默认使用建库…
测试环境—— 系统:Win7 64bit 编译器:VC++ 2015 数据库:MSSQL 2008 R2 #include <Windows.h> #include <stdio.h> #import "C:\Program Files\Common Files\System\ADO\msado15.dll" \ no_namespace rename("EOF", "EndOfFile") int main(int ar…
逻辑文件名是什么 你用的程序连接的时候使用的是数据库名,然后你在你的数据库右击属性的时候,左上角单击"文件",可以看到,数据库名和逻辑文件名是不一样的,你可以看自己的数据库的路径下的数据库文件 例,SQL查询与修改数据库逻辑文件名,移动数据库存储路径示例 . 代码如下 复制代码 ---------------------------------------------------------------------------------- -- Author : htl258(Ton…
事务隔离级别有4种,这4种级别只是对于读操作,也就是select有不同程度的支持, 读未提交:不会对事务里读出来的数据附加任何锁 读已提交:会对事务里读出来的数据附加共享锁,读完就释放共享锁,其他事务可以对这边已读的数据进行读和写,这是mssql默认的隔离级别.这种隔离级别也会发生死锁,例如你的程序中有个A事务是更新完表1,在更新表2,B事务是更新完表2在更新表1,当A和B被并发执行时,死锁就产生了,读未提交也会产生这种死锁. 不可重复读:会对事务里读出来的数据附加共享锁,但是不会读完就释放共享…