SQL Server
文章平均质量分 65
夜光小兔纸
每天进步一点点
展开
-
卸载SQL Server 2012图文教程
很多人在安装SQL Server失败后会选择卸载重装,这就需要先卸载SQL Server后再安装,但是如果SQL Server卸载不干净的话,后续安装过程中会出现很多问题,因此安全干净的卸载SQL Server软件是很重要的步骤。SQL Server 2012、SQL Server 2014、SQL Server 2016的卸载过程稍微有些不同,本文以SQL Server 2012为例进行卸载过程的演示。卸载步骤1、键盘上同时按”Win+R”这两个键,或如下图所示右击开始图标选择“运行”2.输入”s原创 2021-12-15 15:45:55 · 18937 阅读 · 7 评论 -
安装SQL Server 2012 报错“启用windows功能NetFx3时出错”解决方法
问题说明在服务器(操作系统为Windows server 2016)上安装SQL Server 2012的过程中,出现如下报错,告知启用windows功能NetFx3时出错。问题分析NetFx3指的是.NET Framework 3.5,SQL Server 2012数据库系统的运行需要依靠.NET Framework 3.5,但是Windows Server2012默认情况下是并没有安装.NET Framework 3.5的,所以要成功安装SQL Server2012就必须先在操作系统上安装.NE原创 2021-12-15 13:29:54 · 14018 阅读 · 0 评论 -
SQL Server还原数据库后如何同步登录名和用户名
SQL Server数据库在完成备份还原后,经常会发现登录用户失败,这是就需要做登录名和用户名的同步操作。SP_CHANGE_USERS_LOGIN存储过程可以通过重新映射登录名和数据库名来解决这个问题。处理过程说明如下:1)在运行SP_CHANGE_USERS_LOGIN之前,需要保证SQLServer的登录名已被添加到SQLServer实例中。2)在SQLServer Management Studio中运行:use database_namegoEXEC sp_change_users_原创 2021-11-30 14:35:02 · 2551 阅读 · 0 评论 -
SQL Server 2012 配置远程访问端口1433
1.打开SQL Server Configuration Manager2.点击 “SQL Server Network Configuration” 下的 "Protocols for WINDCHILL "(此处的“WINDCHILL”为实例名),右键点击TCP/IP,选择“Enable”启动TCP/IP。说明:启动TCP/IP过程中若出现如下提示,点击【确定】即可。3.右键点击TCP/IP,选择属性。4.设置TCP Port 为1433,点击【应用】。5.完成上述配置后,需重启SQ原创 2021-05-23 15:30:08 · 3810 阅读 · 0 评论 -
建立自动备份的维护计划
在SQL Server 2012中可以使用维护计划来为数据库自动备份,使用方法如下:1.启动SQL Server Management Studio,在【对象资源管理器】窗格中选择【数据库实例】→【管理】→【维护计划】选项。 右击【维护计划】选项,在弹出的快捷菜单里选择【维护计划向导】选项。2.弹出图所示的【维护计划向导】对话框,单击【下一步】按钮。3.弹出图所示的【选择计划属性】对话框,在【名称】文本框中可以输入维护计划的名称,在【说明】文本框中可以输入维护计划的说明文字。设置完需要的原创 2021-05-21 16:53:00 · 741 阅读 · 0 评论 -
SQL Server阻塞原因与解决方法介绍
上篇说SQL Server应用模式之OLTP系统性能分析。五种角度分析sql性能问题。本章依然是SQL性能 五种角度其一“阻塞与死锁”这里通过连接在sysprocesses里字段值的组合来分析阻塞源头,可以把阻塞分为以下5种常见的类型(见表)。waittype,open_tran,status,都是sysprocesses里的值,“自我修复?”列的意思,就是指阻塞能不能自动消失。类型waittypeopen_transtatus自我修复原因/其他特征1不为0>=0转载 2021-05-19 19:59:52 · 3957 阅读 · 0 评论 -
SQL Server应用模式之OLTP系统性能分析
OLTP系统的最大特点,是这类应用里有大量的,并发程度比较高的小事务,包括SELECT、INSERT、UPDATE和DELETE。 这些操作都比较简单,事务时间也不会很长,但是要求的返回时间很严格,基本上需要在几秒钟内必须返回。支持生产流水线的数据库应用,是很典型的OLTP系统。一件产品从原材料到组装成最后的产品,中间会有很多道工序。每道工序本身不复杂,不会花很多时间。工厂需要使用数据库应用记录和监督每一道工序。在流水线上,工人可以扫描产品上的条形码,快速的输入产品加工、处理或检验结果。这些输入和修改过程转载 2021-05-12 22:42:33 · 527 阅读 · 0 评论 -
SQL Server查询占用CPU较高的语句
查找最占CPU的 top 语句1.找出执行时间最长的10条SQL(适用于SQL SERVER 2005及其以上版本)SELECT (total_elapsed_time / execution_count)/1000 N'平均时间ms' ,total_elapsed_time/1000 N'总花费时间ms' ,total_worker_time/1000 N'所用的CPU总时间ms' ,total_physical_reads N'物理读取总次数' ,total_原创 2021-05-12 14:43:38 · 1924 阅读 · 3 评论 -
SQL Server 的状态值 Runnable、Running、Suspended、Sleeping等含义介绍
在做 SQL Server 的管理、监控、效能调校时,我们可能会执行以下的 SQL 指令,去观察 SQL Server 里的状态:SELECT * FROM sys.sysprocesses;EXEC sp_who2;SELECT sqltext.TEXT, req.session_id, req.status, req.command, req.cpu_time, req.blocking_session_id, req.total_elapsed_timeFROM sys.dm_exec_r转载 2021-05-12 11:18:46 · 6339 阅读 · 0 评论 -
SQL Server TempDB异常增长问题定位
在日常运维工作中,有时会出现TempDB数据量剧增的情况,此时可从如下方面进行问题的排查。一、查看日志–查看日志大小dbcc sqlperf(logspace)–查看日志状态select name,log_reuse_wait_desc from sys.databases –查看虚拟日志dbcc loginfo若TempDB数据文件过大,可考虑收缩数据文件。收缩方法请参考《SQL Server TempDB 收缩方法》二、查看tempdb记录的分配情况use tempdbgo原创 2021-05-10 15:57:31 · 812 阅读 · 2 评论 -
SQL Server TempDB 收缩方法
当 tempdb 数据文件过大时,可能会需要收缩,下面介绍几种方法以供参考。如果重启 SQL Server,tempdb 会自动重新创建,tempdb 会回归到初始大小。但是生产环境是不允许重启 SQL Server服务的。下文介绍在线收缩的方法。使用命令 DBCC SHRINKFILE 收缩单个 tempdb 文件。DBCC SHRINKFILE命令的详细介绍请参考:DBCC SHRINKFILE (Transact-SQL)操作步骤:1.确定主数据文件 (tempdb.mdf)、日志原创 2021-05-10 15:56:34 · 4377 阅读 · 0 评论 -
SQL Server 2012 查询数据库中所有表的索引信息
查询语句如下:with temp as( select a.name as tabname,a.object_id ,h.name as indexName,h.index_id,ic.column_id,c.name colName from sys.objects as a right join sys.indexes as h on a.object_id=h.object_id left join sys.index_columns ic原创 2021-04-07 20:58:17 · 335 阅读 · 0 评论 -
SQL Server 查询数据库中表格主键信息
–查询特定表的主键信息方式一:SELECT COLUMN_NAMEFROM INFORMATION_SCHEMA.KEY_COLUMN_USAGEWHERE OBJECTPROPERTY(OBJECT_ID(CONSTRAINT_SCHEMA + '.' + QUOTENAME(CONSTRAINT_NAME)), 'IsPrimaryKey') = 1AND TABLE_NAME = 'TableName' AND TABLE_SCHEMA = 'Schema'方式二:SELECT原创 2021-04-07 17:41:01 · 2832 阅读 · 0 评论 -
SQL Server 查询数据库中所有表的名称和行数
–查询数据库中所有表名select name from sysobjects where xtype='u'或select * from sys.tables–查询数据库中所有表名和行数use [db_name]goSELECT a.name, b.rowsFROM sysobjects AS a INNER JOIN sysindexes AS b ON a.id = b.idWHERE (a.type = 'u') AND (b.indid IN (0, 1))原创 2021-04-07 14:55:39 · 1972 阅读 · 0 评论 -
SQL Server 2012 备份与还原详解
备份全备份TEST01 数据库先新建一张表 dbo.classs查询数据如下:select * from dbo.class先对数据库TEST01做全备份,步骤如下:差异备份现复制dbo.class 表,命名为 dbo.classbakselect * into dbo.classbak from dbo.class现在对TEST01数据库做差异备份,步骤如下:事务日志备份现添加表格 dbo.classbak02select * into dbo.原创 2021-04-06 19:56:23 · 1446 阅读 · 1 评论 -
SQL Server 字符集介绍及修改方法演示
正确认识SQL Server的字符集SQL Server 作为一个国际化产品,支持多语言环境。在 SQL Server 中,字符集被称为排序规则(即Collation)。排序规则不仅影响记录行的 sort 顺序,还影响中文显示是否乱码等。在 SQL Server 中,排序规则可在 3 处地方设置:服务器级别 =>instancesdb库级别 =>databases表列级别 =>columns下图所示为 SQL Server 默认情况下对 Collation 继承的方式。..原创 2021-04-02 22:42:14 · 9499 阅读 · 0 评论 -
深入浅出 SQL Server 死锁
死锁的本质是一种僵持状态,是多个主体对于资源的争用而导致的。理解死锁首先需要对死锁所涉及的相关观念有一个理解。要理解SQL Server中的死锁,更好的方式是通过类比从更大的面理解死锁。比如说一个经典的例子就是汽车(主体)对于道路(资源)的征用,如图 1 所示。图 1 对于死锁的直观理解 在图 1 的例子中,每队汽车都占有一条道路,但都需要另外一队汽车所占有的另一条道路,因此互相阻塞,谁都无法前行,因此造成了死锁。由这个简单的例子可以看出,发生死锁需要四个必要条件,如下:互斥条件:转载 2021-03-02 18:54:55 · 381 阅读 · 0 评论 -
SQL Server 锁升级
在今天的文章里,我想谈下 SQL Server 里的锁升级(Lock Escalations)。锁升级是 SQL Server 使用的优化技术,用来控制在 SQL Server 锁管理里把持锁的数量。我们首先从 SQL Server 里所谓的锁层级(Lock Hierarchy )开始,因为那是在像 SQL Server 的关系数据库里,为什么有锁升级概念存在的原因。锁层级(Lock Hierarchy )下图展示了 SQL Server 使用的锁层级:从图里可以看到,锁层级开始于数据库层级,向下至原创 2021-02-26 11:40:48 · 1408 阅读 · 2 评论 -
SQL Server 任务调度与 CPU
一. 概述我们知道在操作系统看来, SQL Server 产品与其它应用程序一样,没有特别对待。但内存,硬盘,cpu 又是数据库系统最重要的核心资源,所以在 SQL Server 2005及 以后出现了 SQLOS,这个组件是SQL Server 和 windows 的中间层,用于 CPU 的任务调度,解决 I/O 的资源争用,协调内存管理等其它的资源协调工作。下面我来试着讲讲 SQLOS 下的 Scheduler 调度管理。二.CPU 的配置在 Sql server 里点击数据库实例右键到属性,选择转载 2021-02-25 13:42:20 · 497 阅读 · 0 评论 -
SQL Server 数据库文件和文件组
SQL Server 数据库有三种类型的文件类型扩展名全称主要数据文件.mdfprimary data file次要数据文件.ndfsecondary data file事务日志文件.ldflog data file主要数据文件(*.mdf)主要数据文件的建议文件扩展名是 .mdf。主要数据文件包含数据库的启动信息,并指向数据库中的其他文件,存储部分或全部的数据。用户数据和对象可存储在此文件中,也可以存储在次要数据文件中。每个数据库有一个主要数据原创 2021-02-24 13:39:33 · 13752 阅读 · 0 评论 -
SQL Server 索引碎片查询及清理
查询索引碎片查询提定表索引碎片信息--改成当前库use DB_Name --创建变量 指定要查看的表declare @table_id intset @table_id=object_id('TableName')--执行dbcc showcontig(@table_id)DBCC SHOWCONTIG是显示指定的表的数据和索引的碎片信息,解释如下:Page Scanned-扫描页数:如果你知道行的近似尺寸和表或索引里的行数,那么你可以估计出索引里的页数。看看扫描页数,如果明显比你原创 2021-02-20 16:01:22 · 3615 阅读 · 0 评论 -
SQL Server 查询存储过程信息
查询存储过程定义–使用语句查看一个存储过程的定义EXEC sp_helptext 'sp_name'//实际使用时将 sp_name 替换为具体存储过程名称 或SELECT definition FROM sys.sql_modules WHERE object_id=OBJECT_ID('sp_name','P')–查询所有存储过程的名称以及定义SELECT name, definitionFROM sys.sql_modules AS mINNER JOIN sys.all_o原创 2021-02-20 15:33:21 · 9589 阅读 · 0 评论 -
SQL Server 查询 数据库 & 表格 大小
数据库----查询当前数据库大小exec sp_spaceused表格----查询单个表格大小exec sp_spaceused '【表名】'//将【表名】替换为需要查询表的名称----批量查询数据库中各表的大小declare @table_spaceused table (name nvarchar(100) ,rows int ,reserved nvarchar(100) ,data nvarchar(100) ,index_size nvarchar(100) ,unu原创 2021-02-01 16:55:26 · 4186 阅读 · 0 评论 -
SQL Server 配置 Job 监控 tempdb 变化
第一步:创建表格用于记录数据use masterCREATE TABLE [dbo].[Rec_DBFile_Used]( [DBName] [nchar](30) NULL, [FileName] [nchar](30) NULL, [DataFileID] [nchar](10) NULL, [Size_M] [numeric](18, 0) NULL, [SpaceUsed] [numeric](18, 0) NULL, [SpaceFree] [numeric](18, 0) NUL原创 2021-02-01 15:17:35 · 208 阅读 · 0 评论 -
SQL Server 邮箱告警配置
目录配置数据库邮件* 手动启用数据库邮件功能* 配置数据库邮件* 测试数据库邮件 实现 JOB 任务运行状态的检测* 定义操作员* 新建死锁警报* 设置 SQL Server 代理创建 Profile 及映射* 添加 Profile * 映射 Account 和 Profile配置 Job 发送 Database Log Space 邮件* 新建 Job* 测试 Job一、配置数据库邮件1.手动启用数据库邮件功能需执行以下脚本:exe原创 2021-01-28 19:34:52 · 768 阅读 · 4 评论 -
浅谈 SQL Server 中的等待类型(Wait Type)
一.等待类型及说明等待类型说明ASYNC_DISKPOOL_LOCK当尝试同步并行的线程(执行创建或初始化文件等任务)时出现。ASYNC_IO_COMPLETION当某任务正在等待 I/O 完成时出现。ASYNC_NETWORK_IO当任务被阻止在网络之后时出现在网络写入中。BACKUP当任务作为备份处理的一部分被阻止时出现。BACKUP_OPERATOR当任务正在等待磁带装入时出现。若要查看磁带状态,请查询 sys.dm_io_backup_tape原创 2021-01-28 15:08:24 · 1312 阅读 · 4 评论 -
SQL Server 日志收缩方法
在日常运维中,有时会遇到“The transaction log for database ‘xxxx’ is full due to ‘ACTIVE_TRANSACTION’.”这样的报错信息。此错误消息表明:数据库的事务日志文件空间耗尽,log 文件不能再存储新的transaction log。这个时候我们需要进行日志收缩。本文将介绍日志收缩的两种方法。通过图形界面进行日志收缩第一步:右键数据库属性第二步:更改数据库恢复模式,将模式改为Simple。第三步:右键数据库,Tasks→Shr原创 2021-01-21 21:26:26 · 8748 阅读 · 0 评论 -
SQL Server 和 Oracle 数据类型对应关系
在工作中,有时会遇到跨库传输数据的情况,其中SQL Server和Oracle之间的数据传输是比较常见的情况。因为SQL Server和Oracle的数据类型有些差异,这就要求我们在数据传输时正确修改数据类型。那么SQL Server和Oracle数据类型对应关系是怎样的呢?其实SQL Server提供了一张表供我们查询SQL Server和Oracle数据类型的对应关系。查询方法很简单,在sqlserver数据库输入如下查询语句:SELECT * FROM msdb.dbo.MSdatatype_原创 2021-01-20 20:00:23 · 463 阅读 · 0 评论 -
SQL Server 2012 忘记 sa 密码处理方法
SQL Server 2012 忘记sa用户的密码,可重置sa密码,方法如下:1.将身份验证改成Windows身份验证,登录进去2.进入SQL Server控制台,在对象资源管理器中找到Security→Logins→sa,然后在sa上右击Properties。3.进入属性菜单,里面的常规中就有密码,这里可以重新设置一个密码,然后点击OK。说明:若密码设置过于简单,当勾选【Enforce password policy】时,可能会报如下错误此时,取消勾选【Enforce password原创 2021-01-20 19:22:48 · 6162 阅读 · 0 评论 -
SQL Server 创建数据库
SQL Server 创建数据库有两种方式:SQL Server Management Studio管理工具可视化创建、 使用Transact-Sql创建。SQL Server Management Studio管理工具进行可视化创建打开数据库管理工具,通过 Object Explorer连接到SQL Server数据库引擎的实例,然后展开该实例。右键单击Databases,然后单击New Database。在"New Database"中,输入数据库名称,(其它根据自己的具体需要,这里我原创 2021-01-20 17:51:48 · 1868 阅读 · 0 评论