随笔分类 - SQLServer
摘要:一、总结 1、SQLServer2008开始支持审计功能,审计规范分为服务器级别和数据库级别两种; 2、无论是服务器级别的审计还是数据库级别的审计,第一步创建审计对象的方式一样,最后创建完都是在实例下的安全性查看; 3、创建审计对象的时候,不能在创建脚本里直接启用审计(也就是添加state=on),
阅读全文
摘要:一、总结 1、当没有部署触发器和开启审计的情况,想知道某张表是被哪个用户删除的,可以使用系统函数fn_dblog结合系统的默认跟踪找到; 2、需要注意的是系统默认提供5个跟踪文件,默认大小都是20MB,当实例重启的时候或者达到最大值的时候,会重新生成新的文件, 将最早的跟踪文件删除,依次滚动更新,所
阅读全文
摘要:一、总结 1、把执行结果导出到txt或csv文件时,如果慢SQL的脚本过程,会截断文本,并且会换行,所以这里导出到excel文件。 2、每次执行作业之前,生成的文件名不能已经存在,不然会报错,所以要每次执行完之后,重命名一下(具体操作见下面的步骤),错误如下: 二、操作步骤 1、查询慢SQL的脚本
阅读全文
摘要:一、总结 1、为什么要优化Tempdb? tempdb数据库中承载SQLServer实例下所有数据库的大量临时操作,比如排序、联合、行版本控制、在线重建或重组织索引、创建和使用临时表等等。所以tempdb的性能直接关系到数据库的整体性能 2、如何优化Tempdb? * 创建多个tempdb文件,以避
阅读全文
摘要:一、总结 1、varchar: 可变长度的非Unicode字符数据.n的值必须在1到8000之间.n是2的话,表示2个字节,所以可以存储2个英文,只能存储1个中文。 nvarchar: 可变长度的Unicode字符数据.n的值必须在1到4000之间.意思就是不管是英文还是中文都按照2个字节来处理。
阅读全文
摘要:一、总结 1、这里说的堆表指的是组织结构是堆结构的表,也就是没有聚集索引的表(创建聚集索引后,组织结构变成了B+Tree结构)。 2、这里演示的数据库环境是SQLServer2016 RTM。 二、探索步骤 1、准备数据 --1.创建堆表 create table person(id int not
阅读全文
摘要:1、查看数据库的大小命令:exec sp_spaceused 2、查看日志的使用情况 命令:dbcc SQLPERF(LOGSPACE) 3、查看某个session的SQL脚本 命令:dbcc inputbuffer(session_id) 4、查看表有多少条数据需要更新统计信息(一般指有索引的表)
阅读全文
摘要:一、注意点 1、环境准备 IP 角色 操作系统版本 数据库版本 数据库名称 192.168.232.10 primary Windows Server 2008 R2 Enterprise SQL Server 2014 cardaddr 192.168.232.11 secondary Windo
阅读全文
摘要:一、注意点 1.网址 https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/connect-to-sql-server-when-system-administrators-are-locked-out?redi
阅读全文
摘要:一、注意点 1.数据库的模式要是完整模式。 2.要对数据库完整备份和事务日志备份,分别还原到镜像库上,使用NORECOVERY模式。 3.镜像数据库是不允许删除和操作,即便查看属性也不行。 4.先删除端点,再删除证书,再删除主密钥。 5.见证服务器不需要还原主体上的数据库。 6.该文档中主体服务器、
阅读全文
摘要:一、注意点 1、在SQLServer中,有些系统扩展存储过程,是有风险,需要取消public角色的执行权限。 2、从SQLServer2005开始就不能通过sp_dropextendedproc 删除系统扩展存储过程。 3、系统扩展存储过程是不能被删掉的,也没办法禁用(sysadmin角色的用户肯定
阅读全文
摘要:1.查看固定的服务器角色(主体)命令:select * from sys.server_principals where type='R' 2.查看所有的固定数据库角色命令:select * from sys.sysusers where issqlrole=1 3.返回服务器级的主体命令:sele
阅读全文
摘要:一、总结 1、什么事DMV和DMFDMV(Dynamic Management View):动态管理视图DMF(Dynamic Management Function):动态管理函数 二、操作步骤 1.查看当前正在执行的SQL select r.start_time,r.status,r.comma
阅读全文
摘要:一、总结 1、SQLServer中的数据库有的时候会有多个数据文件组或者多个数据文件的情况,该博客就是讨论当有多个数据文件时,表的数据会怎么存储,存储在哪些数据文件中。 2、首先SQLServer中的数据文件主要是用来存储表和索引的数据的。 3、SQLServer的最小存储单位是页,每页8KB,8个
阅读全文
摘要:1.给字符串添加中括号[] select QUOTENAME('aa') 2.根据对象名称查询对应的object_id select object_id('dbo.T3') 3、根据对应的object_id查询对应的object_name select object_name('1525580473
阅读全文
摘要:1、查看内存使用情况 select * from sys.dm_os_sys_memory 2、查看当前进程的情况 select * from sys.sysprocesses 3、查看非系统进程的使用情况(spid是50以后进程) select * from sys.dm_exec_connect
阅读全文
摘要:一、注意点 1、将一个已经存在数据的表转换为分区表,要先看看这个表是否有聚合索引(主键),有的话要删除掉.2、这个就是通过给表添加聚集索引(使用分区架构的索引)来使表达到分区的效果。3、可以不需要那么多文件组和文件,分区架构里可以使用同一个文件组[PRIMARY]。4、做分区的列可以有重复数据,只是
阅读全文
摘要:一、注意点 1、背景:如果数据库做了分离操作,把数据文件和日志文件拷贝到其他存储的过程中,日志文件损坏,而数据文件可用的情况下,做数据库的附加,并重新生成日志文件。 2、通过该种方式附加数据库会自动创建日志文件,日志文件的大小是0.5M,也就是2个VLF,自动增长10%,因此需要手动设置一下日志的大
阅读全文
摘要:一、注意点 1、登录Integration Service必须使用windows用户,并且只能在本地服务器登录。 2、SQLServer2000以前,叫dts,全程Data Transformation Services; SQLServer2005之后,改成了dtsx文件,集成在SSIS中。 3、
阅读全文
摘要:一、注意点 1、索引视图所引用的基表必须在同一个数据库中,不是用union all引用多个数据库的表; 2、创建索引视图时要加上with schemabinding; 3、创建索引视图时要指定表所属的架构; 4、在创建索引视图的select语句时,不能使用*,必须指定具体的列名; 5、只能为索引视图
阅读全文