
SQL Server
文章平均质量分 58
夜光小兔纸
每天进步一点点
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
SQL Server 查询数据库及数据文件大小
如果不想每次写SQL查询,建议写成可重复使用的存储过程,之后调用存储过程即可。size 单位是 8KB,所以需要乘 8 后再除以 1024 转换为 MB。可以看到每个文件的逻辑名称、文件类型(数据或日志)、路径及大小。包括数据文件(.mdf)和日志文件(.ldf)的大小。该命令会返回当前数据库的总大小、未使用空间等信息。前提是你已经 USE 到目标数据库中。原创 2025-06-24 17:37:01 · 747 阅读 · 0 评论 -
SQL Server 查询所有表数据量
sp_MSforeachdb 是未文档化的存储过程,虽然广泛使用但微软不推荐用于关键任务。sys.partitions:每个表(或分区)在物理存储层面的分区信息,包含记录数(rows)。需要跨多个数据库查,可以使用 sp_MSforeachdb 或手动遍历数据库执行2中语句。index_id IN (0, 1):过滤掉非主数据行的分区(如非聚集索引的副本)。每个数据库都会输出一个标题,然后列出其所有表及记录数。sys.tables:获取数据库中所有用户表。sp_MSforeachdb:遍历所有数据库。原创 2025-06-17 14:03:13 · 704 阅读 · 0 评论 -
SQL Server 修改数据库名及物理数据文件名
当前有一 SQL Server 数据库,数据库名称为 study ,现需将该数据库名称修改为 studyold ,并同时根据新用户名修改物理数据文件的名称。原创 2025-06-13 15:53:43 · 601 阅读 · 0 评论 -
SQL Server 查询数据库中所有表中所有字段的数据类型及长度
ActualLengthChars:你定义的字符数,比如 nvarchar(50) 实际为 50 字符,但占用 100 字节。DataTypeWithLength:数据类型及长度,如nvarchar(20)1.查看所有表字段的(数据类型 + 长度描述 + 实际长度(字节))is_nullable:是否允许 NULL(0代表否,1代表是)2.如果你希望显示“字符长度”而不是字节数,可使用如下SQL。SchemaName:表所属的 schema,例如 dbo。MAX 类型会显示为 -1(表示可变最大)原创 2025-06-11 18:49:53 · 486 阅读 · 0 评论 -
SQL Server 数据库重命名
为了快速获取独占访问权限,代码示例使用终止选项 WITH ROLLBACK IMMEDIATE。这将导致所有未完成的事务被回滚,并将立刻断开 MyTestDatabase 数据库的所有其他连接。如果要重命名的数据库被设置为 SQL Server 登录名的默认数据库,则可能会遇到错误。使用下列步骤在 SSMS 中使用 T-SQL 重命名 SQL Server 数据库。3.将以下示例复制并粘贴到查询窗口中,然后选择“执行”。1.为实例连接到 master 数据库。2.打开一个查询窗口。原创 2025-04-30 14:00:00 · 625 阅读 · 0 评论 -
SQL sever中的触发器
触发器可能会对数据库的性能产生影响,特别是当它们涉及到大量数据的时候。因此,在设计和使用触发器时,应该仔细考虑其对性能的潜在影响,并确保它们被正确地配置和处理。转载 2025-02-11 20:27:37 · 2925 阅读 · 0 评论 -
SqlServer基础之(触发器)
DDL触发器是当服务器或者数据库中发生数据定义语言(主要是以create,drop,alter开头的语句)事件时被激活使用,使用DDL触发器可以防止对数据架构进行的某些更改或记录数据中的更改或事件操作。转载 2025-02-11 13:31:35 · 455 阅读 · 0 评论 -
SQL server 创建DB Link 详解
链接服务器是 SQL Server 提供的一项功能,允许用户从 SQL Server 实例中访问其他 SQL Server 或非 SQL Server 数据源(如 Oracle、MySQL 等)。通过链接服务器,用户可以执行跨数据库查询,实现数据共享。在本文中,我们将探讨如何为 SQL Server 创建一个 DB Link,并提供相应的代码示例。原创 2025-02-05 19:25:05 · 1785 阅读 · 0 评论 -
SQL Server 使用SELECT INTO实现表备份
数据量:如果源表数据量较大,执行备份操作时可能会占用较多的资源,建议在非高峰时段进行备份。另外,如果备份的表比较大,请在备份前评估剩余磁盘空间是否充足,以免因资源耗尽而引起数据库故障。在数据库管理过程中,有时我们需要对表进行备份,以防数据丢失或修改错误。表结构:SELECT INTO 语句会创建一个新表,并复制源表的结构(列数据类型等),但不会复制索引、主键、约束等表的其他特性。备份表已存在:如果备份表已存在,SELECT INTO 会抛出错误,必须先删除现有的备份表,或者使用其他方法进行备份。原创 2025-01-24 13:42:09 · 1843 阅读 · 0 评论 -
SQL Server 建立每日自动log备份的维护计划
1.启动SQL Server Management Studio,在【对象资源管理器】窗格中选择数据库实例,然后依次选择【管理】→【维护计划】选项,右击【维护计划】选项,在弹出的快捷菜单里选择【维护计划向导】选项。打开【SQL Server代理】选项下的【作业】选项,右击新建的维护计划【Log_Daily_Backup.子计划_1】,选择【从下列步骤启动作业】选项。6.弹出如下对话框,在【数据库】下拉列表框里选择要备份的数据库名,在【备份组件】区域里选择备份数据库还是备份数据库文件,还可以选择备份介质等。原创 2025-01-23 20:04:44 · 1267 阅读 · 0 评论 -
如何创建备份设备以简化 SQL Server 备份过程?
SQLServer中备份设备存备份数据,含文件、磁带等,可简化管理、保护数据安全,支持多种创建和删除方法,推荐定期备份并使用专业软件管理。在本文中,我介绍了SQLServer中的备份设备,包括其定义及创建和删除的两种常见方法,同时分析了五种常见错误的两种可能原因。希望这些信息能对你有所帮助。SQLServer数据库备份一直是一个重要的话题。为满足不同需求,您可能需要学习多种复杂的方法和工具,而简化流程则需要更多知识。如果时间有限,傲梅集中式数据库备份器可能是更好的选择。转载 2025-01-17 19:15:47 · 116 阅读 · 0 评论 -
SQL Server 查询用户登录信息及连接数等
【代码】SQL Server 查询用户登录信息及连接数等。原创 2025-01-16 13:30:00 · 392 阅读 · 0 评论 -
SQL Server 查询procedure执行记录
【代码】SQL Server 查询procedure执行记录。原创 2025-01-16 09:30:00 · 230 阅读 · 0 评论 -
SQL Server 查询job执行记录
【代码】SQL Server 查询job执行记录。原创 2025-01-15 13:30:00 · 309 阅读 · 0 评论 -
SQL Server查询正在执行的语句
【代码】SQL Server查询正在执行的语句。原创 2025-01-15 13:00:00 · 1014 阅读 · 0 评论 -
SQL Server 查看被锁住的语句
【代码】SQL Server 查看被锁住的语句。原创 2025-01-14 14:22:23 · 156 阅读 · 0 评论 -
SQL Server 查询某段时间内执行的语句
例2:查询2025/1/10 00:00:00 至 2025/1/13 23:59:59 之间执行的所有SQL,按照平均执行时间排序,取top 100。例1:查询2025/1/10 00:00:00 至 2025/1/13 23:59:59 之间执行的所有SQL。原创 2025-01-14 14:18:45 · 489 阅读 · 0 评论 -
卸载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 · 22074 阅读 · 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 · 16080 阅读 · 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 · 3055 阅读 · 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 · 4198 阅读 · 0 评论 -
建立自动备份的维护计划
在SQL Server 2012中可以使用维护计划来为数据库自动备份,使用方法如下:1.启动SQL Server Management Studio,在【对象资源管理器】窗格中选择【数据库实例】→【管理】→【维护计划】选项。 右击【维护计划】选项,在弹出的快捷菜单里选择【维护计划向导】选项。2.弹出图所示的【维护计划向导】对话框,单击【下一步】按钮。3.弹出图所示的【选择计划属性】对话框,在【名称】文本框中可以输入维护计划的名称,在【说明】文本框中可以输入维护计划的说明文字。设置完需要的原创 2021-05-21 16:53:00 · 1068 阅读 · 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 · 4652 阅读 · 0 评论 -
SQL Server应用模式之OLTP系统性能分析
OLTP系统的最大特点,是这类应用里有大量的,并发程度比较高的小事务,包括SELECT、INSERT、UPDATE和DELETE。 这些操作都比较简单,事务时间也不会很长,但是要求的返回时间很严格,基本上需要在几秒钟内必须返回。支持生产流水线的数据库应用,是很典型的OLTP系统。一件产品从原材料到组装成最后的产品,中间会有很多道工序。每道工序本身不复杂,不会花很多时间。工厂需要使用数据库应用记录和监督每一道工序。在流水线上,工人可以扫描产品上的条形码,快速的输入产品加工、处理或检验结果。这些输入和修改过程转载 2021-05-12 22:42:33 · 640 阅读 · 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 · 2230 阅读 · 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 · 7785 阅读 · 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 · 1001 阅读 · 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 · 5456 阅读 · 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 · 408 阅读 · 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 · 3088 阅读 · 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 · 2276 阅读 · 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 · 1845 阅读 · 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 · 11321 阅读 · 0 评论 -
深入浅出 SQL Server 死锁
死锁的本质是一种僵持状态,是多个主体对于资源的争用而导致的。理解死锁首先需要对死锁所涉及的相关观念有一个理解。要理解SQL Server中的死锁,更好的方式是通过类比从更大的面理解死锁。比如说一个经典的例子就是汽车(主体)对于道路(资源)的征用,如图 1 所示。图 1 对于死锁的直观理解 在图 1 的例子中,每队汽车都占有一条道路,但都需要另外一队汽车所占有的另一条道路,因此互相阻塞,谁都无法前行,因此造成了死锁。由这个简单的例子可以看出,发生死锁需要四个必要条件,如下:互斥条件:转载 2021-03-02 18:54:55 · 459 阅读 · 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 · 1692 阅读 · 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 · 630 阅读 · 0 评论 -
SQL Server 数据库文件和文件组
SQL Server 数据库有三种类型的文件类型扩展名全称主要数据文件.mdfprimary data file次要数据文件.ndfsecondary data file事务日志文件.ldflog data file主要数据文件(*.mdf)主要数据文件的建议文件扩展名是 .mdf。主要数据文件包含数据库的启动信息,并指向数据库中的其他文件,存储部分或全部的数据。用户数据和对象可存储在此文件中,也可以存储在次要数据文件中。每个数据库有一个主要数据原创 2021-02-24 13:39:33 · 15778 阅读 · 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 · 4734 阅读 · 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 · 11723 阅读 · 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 · 4393 阅读 · 0 评论