
【SQL Server管理】
文章平均质量分 82
LongRui888
龙腾虎跃,睿意进取,加油!
展开
-
SQL Server Management Studio中复制查询结果保持原有的格式
1、运行如下的监控语句,看当前某个会话的sql运行到哪一步了,找到卡住的sql,然后再有针对的进行优化:--监控SQL执行到哪一步SELECT session_id, b.text, DB_NAME(b.dbid) AS DBname, OBJECT_NAME(b.objectid) AS objname, SUBSTRING( ...原创 2019-01-17 12:04:24 · 1995 阅读 · 0 评论 -
【SQL Server数据迁移】32位的机器:SQL Server中查询ORACLE的数据
从SQL Server中查询ORACLE中的数据,可以在SQL Server中创建到ORACLE的链接服务器来实现的,但是根据32位 、64位的机器和软件,需要用不同的驱动程序来实现。在32位的机器上,通过访问接口:Microsoft OLE DB Provide for Oracle,来实现。1、机器环境和软件环境机器是一台虚拟机,安装了windows xp,原创 2014-03-13 15:07:02 · 1679 阅读 · 0 评论 -
【SQL Server数据迁移】64位的机器:SQL Server中查询ORACLE的数据
从SQL Server中查询ORACLE中的数据,可以在SQL Server中创建到ORACLE的链接服务器来实现的,但是根据32位 、64位的机器和软件,需要用不同的驱动程序来实现。在64位的机器上,通过访问接口:OracleProvide for OLE DB,来实现。1、机器环境和软件环境操作系统是:windows 7旗舰版 64位,SQL Server原创 2014-03-13 16:26:23 · 6775 阅读 · 3 评论 -
通过DBCC Page查看在SQL Server中哪行数据被锁住了?
如何通过dbcc page来知道哪一行数据被锁住呢?要想明白这个问题,首先,需要模拟阻塞问题,这里直接模拟了阻塞问题的一个比较极端的情况,就是死锁。然后,需要知道如何监控死锁,否则,就算产生了死锁,你也不一定知道。这里在模拟死锁之前,通过SQL Profiler先来监控死锁问题。接下来,我们可以通过sys.dm_tran_locks来获取更详细的阻塞信息。最后,通过dbcc pag原创 2013-10-28 17:37:17 · 5894 阅读 · 4 评论 -
How do you build a database? (self.Database)
原始链接:How do you build a database? (self.Database)转载 2014-12-18 18:35:13 · 933 阅读 · 0 评论 -
SQL Server 锁的排队机制
1、新建一个表,插入1010000数据:create table test(id int identity(1,1) ,name varchar(600)) goinsert into testvalues(replicate('a',600));go 1010000create index idx_test_id on test(id)2、新开一个会话(A),运原创 2014-07-31 14:49:04 · 2643 阅读 · 0 评论 -
SQL Server中DML语句要申请的锁
对于select语句:1、当采用表扫描时,会直接锁定page,而不是锁定具体的某条记录,所以会有这些锁:A、数据库S锁B、表的IS锁C、页的S锁2、当采用索引来查找数据时,会索引具体的记录,所以会有这些锁:A、数据库S锁B、索引中page的IS锁C、索引中page中的key的S锁D、表的IS锁E、页的IS锁F、RID的S锁3、对于原创 2014-05-24 14:17:03 · 1463 阅读 · 0 评论 -
对read committed隔离级别的全新认识:select语句能读取到,未来被其他事务修改过的数据???
关于锁,有很多可以学习的,比如,锁的粒度,锁的模式,锁的兼容性,以及隔离级别等等。但是,具体到运行一个语句时,是怎么去获取到相应的锁的呢,比如,一个select语句,那么需要加S锁,可能是对记录,也可能是对页,也可能是对表,可能通过索引去找到记录,找到记录后,是一次获取所有的锁,还是一部分一部分的获取呢?比如下面实验中,正好是一条记录占用1个数据页,一共查询32768条数据,那么到原创 2014-03-05 16:20:03 · 3362 阅读 · 8 评论 -
DBCC PAGE、DBCC LOG、DBCC EXTENTINFO、DBCC IND、DBCC SHOW_STATISTICS、DBCC SHOWCONTIG、DBCC SQLPERF
下面的代码,产生的结果可能和你测试时的结果有所不同,所以需要以实际的值为准。1、DBCC PAGE语法:dbcc page ( {'dbname' | dbid}, filenum, pagenum [, printopt={0|1|2|3} ])The printopt parameter has the following meanings:0 - print原创 2014-02-15 11:58:04 · 2258 阅读 · 0 评论 -
用c#读取并分析sql2005日志
原文链接: http://blog.youkuaiyun.com/jinjazz/article/details/2783909用过logExplorer的朋友都会被他强悍的功能吸引,我写过一篇详细的操作文档可以参考http://blog.youkuaiyun.com/jinjazz/archive/2008/05/19/2459692.aspx我们可以自己用开发工具来实现sql日志的读取,这个应转载 2014-01-05 12:11:41 · 2188 阅读 · 0 评论 -
SQL Server元数据查询
1、查询触发器的信息--查询触发器的信息select name, --触发器名称 (select name from sys.objects where object_id = t.parent_id)as tb_name --表的名称from sys.triggers t--查询触发器的代码select *from sys.原创 2014-01-04 11:20:27 · 1931 阅读 · 0 评论 -
通过dbcc page来查看SQL Server表中的数据
--1.先建表CREATE TABLE test(idd INT NOT NULL,name VARCHAR(10) NULL)INSERT INTO TESTSELECT 1,'abcdefg'UNION ALLSELECT 2,'hijklmn'--SELECT * FROM TESTSELECT *FROM sys.tables WHERE原创 2013-10-11 20:01:57 · 3580 阅读 · 4 评论 -
SQL Server中的重要观点
以下为重要观点: 1、通过把数据库设置成读已提交快照,在read committed隔离级别下,读不会阻塞写,写也不会阻塞读,通过尝试这个观点是正确的。2、当连接1请求了共享锁,2请求了独占锁,3请求了共享锁,4请求了更新锁时,这四个请求都会进入锁的请求队列中,书上说SQL Server的锁队列,基本上是按照先进先出的规则,但是会考虑锁的兼容性,所以这个时候可能1、3、4这3个请求的锁原创 2012-02-05 15:15:26 · 885 阅读 · 0 评论 -
SQL Server 2005 的启动过程
通过 net start mssqlserver 命令来启动SQL Server,在系统的事件查看器的应用程序,以及SQL Server的Errorlog文件里面,看到如下信息,显示了SQL Server在启动过程中做了什么: 一、验证模式、版本信息、错误日志文件、注册表启动参数、启动优先级、检查硬件、分配锁1、身份验证模式为 MIXED。2、SQL Server 2005的版本号原创 2011-10-11 18:34:30 · 2694 阅读 · 1 评论 -
【SQL Server高可用性】数据库镜像:同一台机器的两个不同实例上配置数据库镜像 + 另一台见证服务器
在上一篇文章中:【SQL Server高可用性】数据库镜像:在SQL Server 2008R2上的配置数据库镜像原创 2014-03-07 16:16:38 · 3901 阅读 · 0 评论 -
【SQL Server高可用性】数据库复制:修改表结构、新增表、新增存储过程 会被复制到订阅服务器?
在SQL Server上配置好数据库复制后: 1、如果给表加了字段,会不会复制到订阅服务器呢?如果是删除1个字段呢? 2、如果新创建了1个表,会不会被同步过去呢? 3、如果新建了一个存储过程,会不会同步过去呢?本文将会通过实验,解决上述问题。1、首先,需要配置数据库复制。这里为了简单起见,用了机器上的2个SQL Server 2原创 2014-03-06 21:23:26 · 3703 阅读 · 0 评论 -
某项目接口任务失败的原因总结
昨天听某位同事说,他所负责的某个项目,由于当天凌晨接口任务运行失败,导致接口表无数据,客户没有取到数据,被客户投诉。。。这个失败的接口任务,主要是从一个业务表里取数,然后插入到接口表,整个接口任务运行结束,逻辑非常简单。他问开发,为什么任务会失败,得到的答复是:uat环境中接口表某个字段长度是50,而正式环境中接口表某个字段的长度是100,由于之前一直是在uat环境上测试,也没问题,前天把接口移到...原创 2017-12-14 15:39:26 · 1237 阅读 · 0 评论 -
Linux安装SQL Server 2017(安装篇SQL Server on linux)
之前写过,Linux下安装SQL Server 2016的文章如下:准备篇:Linux下安装SQL Server 2016(准备篇)安装篇:Linux下安装SQL Server 2016(安装篇)连接篇:Linux下安装SQL Server 2016(连接篇)2017年10月,发布了SQL Server 2017,下面会写如何在Linux下安装SQL Server 2017原创 2018-01-29 12:47:58 · 26113 阅读 · 13 评论 -
Linux安装SQL Server 2017(连接篇SQL Server on linux)
安装篇:Linux下安装SQL Server 2017(安装篇)连接篇:Linux下安装SQL Server 2017(连接篇)连接数据库(1)下载客户端连接工具的源curl -o /etc/yum.repos.d/msprod.repo https://packages.microsoft.com/config/rhel/7/prod.repo(2)安原创 2018-01-29 14:05:58 · 6747 阅读 · 0 评论 -
SQL Server 数据库管理员(DBA)的工作内容
涉及到的:数据库系统规划1、硬件:在整套系统规划初期,要针对数据库未来的成长需求、性能需求、商业考虑,决定数据库运行需要的内存、硬盘、cpu及其他资源(IOPS、网络带宽)。在做硬件规划时,考虑如何使用RAID,,这些都会影响到数据库的性能。2、 软件:选择操作系统、数据库产品、第三方工具。3、 整体架构,按照系统实际需要来规划:高可用性, 可扩展性, 负载均衡, 读写原创 2016-04-07 14:17:17 · 5647 阅读 · 1 评论 -
MS SQLSERVER2008的事务、锁、并发的问题
面是一个网友提出的非常好的问题:MS SQLSERVER2008的事务,锁,并发的问题学习了SQL SERVER2008关于事务的讲解,关于锁的讲解,关于并发的理解。但是仍然有一些问题,不是很理解,希望大牛们给予指导。问题1:并发访问的基础是多个外部进程,可以同时操作同一张表,或者操作同一个记录,总之是相同对象。这样带来的问题是,1、写覆盖,2、不可重复读,3、脏数据,4、幻数据。原创 2017-03-07 11:41:01 · 645 阅读 · 0 评论 -
Linux下安装SQL Server 2016(准备篇SQL Server on linux)
下载centos 7.2 :http://www.centoscn.com/CentosSoft/iso/2016/0601/7341.html原创 2016-12-01 15:17:01 · 19555 阅读 · 0 评论 -
Linux下安装SQL Server 2016(安装篇SQL Server on linux)
安装过程如何安装直接参考这个文章:安装sql server整个安装过程非常简单。上面的文档里是通过 sudo 命令,用root身份来执行,不过这里为了简单,就用root账号来安装的。(1)下载sql server的源,便于通过yum命令来安装curl https://packages.microsoft.com/config/rhel/7/mssql-server.re原创 2017-01-01 13:50:34 · 21227 阅读 · 17 评论 -
【SQL Server高可用性】数据库复制:SQL Server 2008R2中通过数据库复制,把A表的数据复制到B表
经常在论坛中看到有人问数据同步的技术,如果只是同步少量的表,那么可以考虑使用链接服务器+触发器,来实现数据同步,但当要同步的数据表比较多,那么可以考虑用数据库复制技术,来实现数据的同步。下面的环境是这样的:一台是笔记本,实例名:MSSQLSERVER另一台是安装的虚拟机,实例名:MSSQLSERVER。首先,分别在两个实例中分别运行下面的代码,来创建数据库:--原创 2013-12-01 20:54:21 · 20201 阅读 · 23 评论 -
通过sql profiler捕获sql
最近某些客户反应在查询一些报表时比较慢,但是我查询了这些表,觉得并没有客户说的那么慢,于是,我猜测可能是当某些用户选择了较多的查询条件,而sql server产生了不够优化的执行计划才导致查询比较慢。为了能够抓取到比较真实的sql,我准备用sql profiler来捕获系统中正在运行的sql。1、启动 sql server profiler工具2、通过window原创 2016-12-22 13:52:38 · 3820 阅读 · 0 评论 -
监控SQL:执行表中所有sql语句、记录每个语句运行时间(3)
需求: --delete from tb_CMdCREATE TABLE [dbo].[TB_CMD]( [RowGuid] [nvarchar](50) NOT NULL, [RunTime] [date] NULL, [RunStatus] [int] NULL, [SqlEvent] [nvarchar](max) NULL, [OrderNumber] [int] N原创 2014-01-24 16:51:36 · 2772 阅读 · 0 评论 -
监控SQL:用触发器来监控是哪些语句、存储过程修改了特定表(4)
实际问题如下:有一个表A,表A中有一个字段B被某个存储过程修改了。比如B的初始值为1,被某个存储过程改为了0,但是现在存储过程大概有1000多个,有没有什么好的方法,可以监测到这个字段是被谁修改的。实现思路:这种情况下,可以用多种方法,比较简单的就是用触发器,比如,要监控A表的数据修改,那么可以给A表创建一个触发器,同时创建一个日志表,当A表的数据被修改时,通过日志表记原创 2016-12-16 12:25:04 · 2240 阅读 · 0 评论 -
【SQL Server高可用性】数据库镜像:在SQL Server 2008R2上的配置数据库镜像
本文想说明的是,配置数据库镜像,不是什么高深的技术,只要按照规范的步骤,就能配置成功,没什么难度,而且只需要在普通的pc上就可以配置成功,对网络、存储等也没什么要求。你完全可以在你公司的局域网内,通过和另外2个同事的电脑,或者在家,借用其他2个室友的笔记本,就能配置成功,如果你在生成环境中配置数据库镜像,那么基本的配置过程也是一样的。1、基本的信息本文主要是在3台笔记本上配置数原创 2014-03-02 10:46:26 · 4742 阅读 · 0 评论 -
【SQL Server学习笔记】Windows主体、SQL Server主体、数据库主体
主体就是可以被授予权限,访问特定数据库对象的对象。比如,用户登录,角色,应用程序。安全对象是可以访问的受到控制的对象。比如表、视图、存储过程、函数、触发器。权限是独立的,可以被授予给主体,以访问安全对象,或者未被授予,以阻止访问安全对象。 主体可以分为3个不同的范围:1、Windows级别的主体:基于Windows域用户账号、域用户组、本地用户组的主体。当添加到SQL Serv原创 2012-09-10 13:14:20 · 1769 阅读 · 0 评论 -
【SQL Server学习笔记】通过加密来保护数据库中的数据
在SQL Server 2005引入了内建数据加密,通过系统函数、证书、密钥完成加密。一、通过函数加密。二、与通过证书授权实现的数字证书相似,SQL Server证书包括了公钥和私钥这一对密钥,是数据库级的安全对象,他们用来加密和解密数据。 三、SQL Server还拥有创建非对称密钥和对称密钥的能力。非对称密钥与证书相似,公钥用来加密数据库,私钥用来解密数据。非对称密钥和证书都提原创 2012-10-13 21:08:14 · 2966 阅读 · 0 评论 -
【SQL Server学习笔记】DBCC命令3:状态验证
状态验证:针对数据库、文件组、表、索引、数据库分页的分配、数据库元数据等进行验证。如checkdb、checkfilgroup、checktable、checkalloc、checkconstraints、checkident、checkcatalog等。1、DBCC CHECKALLOC检查磁盘空间分配结构的一致性。DBCC CHECKALLOC 可使用内部数据库快照来提供执行这原创 2012-08-02 22:06:29 · 2230 阅读 · 0 评论 -
【SQL Server学习笔记】数据库快照
1、数据库快照是只读的、某一特定时间点的静态数据库副本。可以像连接到其他数据库一样连接到数据库快照,使用它们可以生成报表、做测试、恢复数据。在处理大量的或者有潜在风险的数据库更新时,一旦失败,可以使用数据库快照进行数据恢复。可以为一个数据库创建多个快照,提供在快照生成的特定时间点的数据的只读视图,比如:在每天,每周,每月结束时为数据库创建快照,那么这些快照就会保存在创建时所作天、周、月的数原创 2012-08-04 11:26:33 · 1609 阅读 · 0 评论 -
DBCC命令1:维护
DBCC命令是集成在T-SQL内的工具程序,可以完成许多T-SQL语法本身无法执行的任务,用途非常广泛。可分为几类:维护:针对数据库、索引、文件组的维护工作。 如dbrepair、dbreindex、indexdefrage、shrinkdatabase、shrinkfile、updateusage等。1、dbcc dbrepair :只是包含在SQL Server 2000中用于原创 2012-08-12 19:01:59 · 2820 阅读 · 0 评论 -
SQL Server 2005中附加、分离数据库T-SQL
use mastergo--------在master数据库中的databases视图中,查看要附加的数据库是否存在,如果存在,那么删除数据库if exists (select name from sys.databases where name = N'原创 2011-08-08 17:30:02 · 1667 阅读 · 0 评论 -
【SQL Server学习笔记】更改跟踪(Chang Tracking)
今天有一个语句在输入查询条件为2012-02-01时,查询速度15s左右,但是输入条件改为2012-03-01时,查询速度2分钟左右,一开始认为是否是因为第二个语句没有重新编译,它重用了第一个查询的执行计划,所以慢,但是仔细想了想,第二个语句应该是一开始就自动会重新编译,因为服务器参数没有强制参数化,而是简单参数化,像这种有点复杂的语句,应该是会自动重新编译的,那么只能说是第一个查询语句生成的执行原创 2012-03-07 18:30:40 · 2245 阅读 · 0 评论 -
【SQL Server学习笔记】SQL Server的安全对象、权限
一:安全对象是SQ L Server控制访问权限的资源,在SQL Server中的安全对象分为3个嵌套范围。1、层次最高的是服务器范围。包含了登录名,数据库,端点。 --1.管理服务器权限use mastergoif not exists(select name from sys.server_principals原创 2012-09-10 15:36:21 · 3037 阅读 · 0 评论 -
DBCC命令汇总
引用了链接:http://bbs.chinaunix.net/thread-2315221-1-1.html IF (OBJECT_ID('#tmpDBCC04') IS NOT NULL) DROP TABLE #tmpDBCC04GOCREATE TABLE #tmpDBCC04( CurrentLSN Varchar(200), Op转载 2013-01-04 17:18:51 · 5544 阅读 · 0 评论 -
【SQL Server学习笔记】数据库审核
数据库审核SQL Server 2008引入了审核实例、数据库级别活动的能力。使用服务器审核对象将活动捕获到目标数据目的地,这个对象定义将活动捕获到文件、windows应用程序事件日志、windows安全事件日志。使用服务器审核规范定义在实例范围内希望捕获哪些事件。使用数据库审核规范对象可以在数据库范围内定义希望捕获哪些事件。只允许一个服务器规范绑定到一个服务器审核规范对象上,而一原创 2013-10-14 12:09:35 · 2105 阅读 · 0 评论 -
怎样用sql语句复制表table1到表table2的同时复制主键
在从table1表复制到table2的时候,我们会用语句:select * into table2 from table1但这个语句并不能在复制数据的同时,复制主键。下面的代码通过动态语句,来实现在复制数据的同时,也会复制主键:if OBJECT_ID('table1') is not null drop table table1gocr原创 2013-10-14 15:44:25 · 3028 阅读 · 0 评论 -
监控SQL:通过SQL Server的DML触发器来监控哪些IP对表的数据进行了修改(2)
在有些公司中,由于管理的不规范,便于开发人员直接修改、部署程序,往往任何开发人员,都能登录到生产环境的数据库直接进行操作。当然啦,一般的select语句可能不会导致什么太大的问题,但如果是delete和update,而由于某些开发人员忘记写where条件,或者条件写错了,导致一下子删除或更新了,导致数据除了问题,最关键的是当发现问题后,没有人承认这个是他干的,那该怎么办呢?下面就是原创 2013-11-29 10:15:42 · 3236 阅读 · 0 评论