首页 > 数据库 >SQL SERVER 数据库的常用DBA命令

SQL SERVER 数据库的常用DBA命令

时间:2023-12-27 17:14:56浏览次数:34  
标签:CHARINDEX DBA TEXT 数据库 SERVER 索引 SQL GO id

查看表是否死锁

 select *
  from master..SysProcesses
 where db_Name(dbID) = '数据库名'
   and spId <> @@SpId
   and dbID <> 0
   and blocked >0;

或者

select 
    request_session_id spid,   
    OBJECT_NAME(resource_associated_entity_id) tableName    from 
    sys.dm_tran_locks   where 
    resource_type='OBJECT'

杀死进程

kill 进程号

sql server数据库处理【正在恢复】状态,查看恢复进度

DECLARE @DBName VARCHAR(64) = '数据库名字'

DECLARE @ErrorLog AS TABLE([LogDate] CHAR(24), [ProcessInfo] VARCHAR(64), [TEXT] VARCHAR(MAX))

INSERT INTO @ErrorLog
EXEC sys.sp_readerrorlog 0, 1, 'Recovery of database', @DBName

SELECT 
[LogDate]
,SUBSTRING([TEXT], CHARINDEX(') is ', [TEXT]) + 4,CHARINDEX(' complete (', [TEXT]) - CHARINDEX(') is ', [TEXT]) - 4) AS PercentComplete
,CAST(SUBSTRING([TEXT], CHARINDEX('approximately', [TEXT]) + 13,CHARINDEX(' seconds remain', [TEXT]) - CHARINDEX('approximately', [TEXT]) - 13) AS FLOAT)/60.0 AS MinutesRemaining
,CAST(SUBSTRING([TEXT], CHARINDEX('approximately', [TEXT]) + 13,CHARINDEX(' seconds remain', [TEXT]) - CHARINDEX('approximately', [TEXT]) - 13) AS FLOAT)/60.0/60.0 AS HoursRemaining
,[TEXT]

查看数据库日志大小

 dbcc sqlperf(logspace)

收缩数据库日志

USE [master]
 GO
 ALTER DATABASE [数据库名字] SET RECOVERY SIMPLE WITH NO_WAIT 
GO
  ALTER DATABASE [数据库名字] SET RECOVERY SIMPLE  --简单模式--
GO
 USE [数据库名字]----blog为需要清除日志的数据库名称
GO
DBCC SHRINKFILE (N'perf_Log' , 11, TRUNCATEONLY) ----perf_Log需要清除日志的数据库名日志名称
 GO
 USE [master]
 GO
 ALTER DATABASE [数据库名字] SET RECOVERY FULL WITH NO_WAIT---
 GO
ALTER DATABASE [数据库名字] SET RECOVERY FULL --还原为完全模式--

查看数据库中表的大小

SELECT 
    t.NAME AS TableName,
    p.rows AS RowCounts,
    SUM(a.total_pages) * 8 AS TotalSpaceKB, 
    SUM(a.used_pages) * 8 AS UsedSpaceKB, 
    (SUM(a.total_pages) - SUM(a.used_pages)) * 8 AS UnusedSpaceKB
FROM 
    sys.tables t
INNER JOIN      
    sys.indexes i ON t.OBJECT_ID = i.object_id
INNER JOIN 
    sys.partitions p ON i.object_id = p.OBJECT_ID AND i.index_id = p.index_id
INNER JOIN 
    sys.allocation_units a ON p.partition_id = a.container_id
GROUP BY 
    t.NAME, p.Rows
ORDER BY 
    t.Name

查看数据库的表的索引碎片占比

  • 逻辑扫描碎片 小于5% 不做索引的重组和重建
  • 5% - 30% 做索引的重组
  • 大于30% 做索引的重建
DBCC SHOWCONTIG('charge_item_detail') WITH ALL_INDEXES
  • 重新生成索引将删除该索引并创建一个新索引。此过程中将删除碎片,通过使用指定的或现有的填充因子设置压缩页来回收磁盘空间,并在连续页中对索引行重新排序(根据需要分配新页)。这样可以减少获取所请求数据所需的页读取数,从而提高磁盘性能。
  ALTER INDEX 索引名 on 表名 REBUILD
  • 重新组织索引是通过对叶页进行物理重新排序,使其与叶节点的逻辑顺序(从左到右)相匹配,从而对表或视图的聚集索引和非聚集索引的叶级别进行碎片整理。使页有序可以提高索引扫描的性能。索引在分配给它的现有页内重新组织,而不会分配新页。如果索引跨多个文件,将一次重新组织一个文件,不会在文件之间迁移页。
  ALTER INDEX 索引名 on 表名 reorganize

标签:CHARINDEX,DBA,TEXT,数据库,SERVER,索引,SQL,GO,id
From: https://www.cnblogs.com/HelloMrLee/p/17930812.html

相关文章

  • mysql_real_query与mysql_query 区别
    mysql_real_query(&mysql,sql,strlen(sql));//多了一个长度mysql_query(&mysql,sql);1、mysql_real_querysql语句中可以包含二进制数据,调用的时候多一个strlen2、mysql_querysql语句只能是字符串,当数据里有0的时候,直接就停了调用的时候  ***多次调用会出现//Comm......
  • MySQL 事务日志
    MySQL事务日志事务有4种特性:原子性,一致性,隔离性和持久性。那么事务的四种特性到底是基于什么机制实现呢(是通过什么来控制的呢)?事务的"隔离性"由锁机制实现(通过加锁来实现隔离)。而事务的"原子性","一致性"和"持久性"由事务的redo日志和undo 日志来保证redolog称......
  • SqlServer数据库
    使用VisualStudio进行winform项目与数据库交互时主要分为如下几步:1.编写JDBC代码2.调用方法进行增删改查操作2.1增2.2删2.3改2.4查我们需先创建好目标数据库,记录下本机SQLServer服务器名称,我的是"PC-20221027HHVU"(直接去SQLServer里看就行) 这里以图......
  • MySQL 8用户及权限管理
    官方链接:https://dev.mysql.com/doc/refman/8.0/en/create-user.htmlTheoptionalWITHclauseisusedtoenableausertograntprivilegestootherusers.TheWITHGRANTOPTIONclausegivestheusertheabilitytogivetootherusersanyprivilegestheuserhas......
  • 最新SQLMap安装与入门技术
    SQLMap详解SQLMap是一个自动化的SQL注入工具,其主要功能是扫描、发现并利用给定URL的SQL注入漏洞。SQLMap内置了很多绕过插件,支持的数据库是MySQL、Oracle、PostgreSQL、MicrosoftSQLServer、MicrosoftAccess、IBMDB2、SQLite、Firebird、Sybase和SAPMaxDB。SQLMap采用了以下......
  • mybatis在读取配置文件,创建SqlSessionFactory对象时。需要对密码进行解密,再连接数据库
    1、我看了网上很多的方法,主要是说通过新建一个jdbc.properties来获取数据库连接池。但是我试了并没有作用。 2、解决办法:简单粗暴。先用后代码读取原有的mybatis-configuration.xml,然后将密码进行解密后,设值到xml中。最后把解密的xml作为源。去生成一份新的xml文件,把心的xml......
  • MySQL 事务的基础知识
    事务的基础知识1.数据库事务概述事务是数据库区别于文件系统的重要特性之一,当我们有了事务就会让数据库中的数据始终保持一致性,同时我们还能通过事务的机制恢复到某个时间地点的数据,这样可以保证已提交到数据库的修改不会因为系统崩溃而丢失。1.1存储引擎的支持情况查询当......
  • 麒麟下mysql安装及使用
    1、进入软件商店--搜索mysql--安装mysql服务器和mysql工作台,重新启动系统;2、检测mysql版本:显示mysqlver8.0.33终端命令:mysql--version 3、启动mysql服务进程终端命令:sudosystemctlmysql4、查看服务状态终端命令:sudosystemctlstatusmysql按esc--:q退出vim返回终......
  • k8s 安装kubesphere3.4.1 多次安装报错 Error from server (InternalError): Internal
    failed:[localhost](item={'ns':'kubesphere-system','kind':'users.iam.kubesphere.io','resource':'admin','release':'ks-core'})=>{"ansible_loop_var":"......
  • 20 mysql 隔离性的底层原理
    隔离性的原理:1.0隔离性是通过锁机制实现的。当一个事务修改数据时,需要先获取锁。其它事务要修改数据,必须等待之前的事务提交或者回滚,然后释放锁操作之后。myisam只支持表锁,innodb支持表锁和行锁。因为表锁比较影响性能,所以通常情况下,使用行锁就可以了。2.0隔离性的另外一个方面,就是......