DBA查询命令积累——不断更新

原文:DBA查询命令积累——不断更新

一、服务器配置:

1、兼容级别:兼容级别只影响指定数据库中的行为,而不会影响整个服务器上的行为。

1.1、查看数据库兼容级别及更改兼容级别:

SELECT compatibility_level FROM sys.databases WHERE name=DB_NAME()

1.2、更改兼容级别:将某些数据库行为设置为与指定的 SQL Server 版本兼容。

sp_dbcmptlevel [ [ @dbname = ] name ]
    [ , [ @new_cmptlevel = ] version ]

--上面的命令有可能在后续取消,所以建议使用下面语句:

ALTER DATABASE database_name
SET COMPATIBILITY_LEVEL = { 80 | 90 | 100 }

权限

只有数据库所有者、sysadmin 固定服务器角色和 db_owner 固定数据库角色的成员(前提是您要更改当前数据库)才能执行此过程。

较低兼容级别和级别 100 之间的差异

兼容级别设置为 90 或更低 兼容级别设置为 100 影响的可能性

对于多语句表值函数,在创建它们时,无论会话级别设置如何,QUOTED_IDENTIFER 设置始终为 ON。


在创建多语句表值函数时,会遵循 QUOTED IDENTIFIER 会话设置。



在创建或更改分区函数时,会评估函数中的 datetimesmalldatetime 文字,并假定语言设置为 US_English。


使用当前语言设置来评估该分区函数中的 datetimesmalldatetime 文字。



INSERT 和 SELECT INTO 语句中允许使用(但会忽略)FOR BROWSE 子句。


INSERT 和 SELECT INTO 语句中不允许使用 FOR BROWSE 子句。



OUTPUT 子句中允许使用全文谓词。


OUTPUT 子句中不允许使用全文谓词。



不支持 CREATE FULLTEXT STOPLIST、ALTER FULLTEXT STOPLIST 和 DROP FULLTEXT STOPLIST。系统非索引字表自动与新的全文索引相关联。


支持 CREATE FULLTEXT STOPLIST、ALTER FULLTEXT STOPLIST 和 DROP FULLTEXT STOPLIST。



MERGE 不作为保留关键字强制应用。


MERGE 是完全保留的关键字。在 100 和 90 兼容级别下,都支持 MERGE 语句。



使用 INSERT 语句的 <dml_table_source> 参数会引发语法错误。


您可以捕获嵌套的 INSERT、UPDATE、DELETE 或 MERGE 语句中 OUTPUT 子句的结果,然后将这些结果插入目标表或视图。这通过使用 INSERT 语句的 <dml_table_source> 参数来实现。



除非指定 NOINDEX,否则 DBCC CHECKDB 或 DBCC CHECKTABLE 将对单个表或索引视图及其所有非聚集索引和 XML 索引同时执行物理和逻辑一致性检查。不支持空间索引。


除非指定 NOINDEX,否则 DBCC CHECKDB 或 DBCC CHECKTABLE 将对单个表及其所有非聚集索引同时执行物理和逻辑一致性检查。但是,在默认情况下,仅对 XML 索引、空间索引和索引视图执行物理一致性检查。

如果指定了 WITH EXTENDED_LOGICAL_CHECKS,则将对索引视图、XML 索引和空间索引(如果存在)执行逻辑检查。默认情况下,先执行物理一致性检查,然后执行逻辑一致性检查。如果还指定了 NOINDEX,则仅执行逻辑检查。



如果将 OUTPUT 子句和数据操作语言 (DML) 语句一起使用,并且在语句执行过程中发生运行时错误,则会终止并回滚整个事务。


如果将 OUTPUT 子句和数据操作语言 (DML) 语句一起使用,并且在语句执行过程中发生运行时错误,则行为取决于 SET XACT_ABORT 设置。如果 SET XACT_ABORT 设置为 OFF,则由使用 OUTPUT 子句的 DML 语句所生成的语句中止错误将终止该语句,但批处理的执行仍会继续,并且不会回滚事务。如果 SET XACT_ABORT 设置为 ON,则由使用 OUTPUT 子句的 DML 语句所生成的全部运行时错误都将终止批处理,并回滚事务。



CUBE 和 ROLLUP 不作为保留关键字强制应用。


CUBE 和 ROLLUP 是 GROUP BY 子句中的保留关键字。



对 XML anyType 类型的元素应用严格验证。


对 XML anyType 类型的元素应用宽松验证。有关详细信息,请参阅通配符组成部分和内容验证。



数据操作语言语句不能查询或修改特殊属性 xsi:nilxsi:type

这意味着 /e/@xsi:nil 失败,同时 /e/@* 忽略 xsi:nilxsi:type 属性。但是,/e 返回xsi:nil
xsi:type 属性,以保持与 SELECT xmlCol 的一致性,即使xsi:nil = "false" 也是如此。


特殊属性 xsi:nilxsi:type 作为常规属性存储,不能查询和修改。

例如,执行查询 SELECT x.query(‘a/b/@*‘) 会返回包括 xsi: nilxsi: type 在内的所有属性。若要在查询中排除这些类型,请用@*[namespace-uri(.) != "insert xsi namespace uri" 替换@*,而不是用(local-name(.)
= "type"
local-name(.) ="nil" 来替换。



用于将 XML 常量字符串值转换为 SQL Server datetime 类型的用户定义函数被标记为确定的。


用于将 XML 常量字符串值转换为 SQL Server datetime 类型的用户定义函数被标记为不确定的。



不完全支持 XML 联合和列表类型。


完全支持联合和列表类型,包括以下功能:

  • 列表的联合
  • 联合的联合
  • 原子类型的列表
  • 联合的列表


当视图或内联表值函数中包含 xQuery 方法时,不对该方法所需的 SET 选项进行验证。


当视图或内联表值函数中包含 xQuery 方法时,对该方法所需的 SET 选项进行验证。如果该方法的 SET 选项设置不正确,将引发一个错误。

有关所需选项设置的详细信息,请参阅设置选项(XML 数据类型)。



包含行尾字符(回车符和换行符)的 XML 属性值不根据 XML 标准进行规范化。即返回回车符和换行符,而不是单个换行符。


包含行尾字符(回车符和换行符)的 XML 属性值会根据 XML 标准进行规范化。也就是说,外部已分析实体(包括文档实体)中的所有换行符都会在输入时进行规范化,方法是将两字符序列 #xD #xA 和后面没有跟 #xA 的所有 #xD 都转换为单个 #xA 字符。

使用属性来传输包含行尾字符的字符串值的应用程序接收到的这些字符将和提交时有所不同。若要避免规范化过程,请使用 XML 数字字符实体对所有行尾字符进行编码。



ROWGUIDCOL 和 IDENTITY 列属性可能错误地命名为约束。例如,CREATE TABLE T (C1 int CONSTRAINT MyConstraint IDENTITY) 语句可以执行,但约束名不会保留,也无法让用户访问。


ROWGUIDCOL 和 IDENTITY 列属性不能命名为约束。返回错误 156。



使用双向赋值(如 UPDATE T1 SET @v = column_name = <expression>)来更新列会产生意外后果,因为在语句执行过程中,可以在其他子句(如 WHERE 和 ON 子句)中使用变量的实时值,而不是使用语句起始值。这会导致谓词的含义无法预测地逐行变化。

只有在兼容级别设置为 90 时,此行为才适用。


使用双向赋值来更新列会产生预期的结果,因为在语句执行过程中,只会访问列的语句起始值。



在包含顶级 UNION 运算符的语句中,允许使用变量赋值,但会返回意外的结果。例如,在以下语句中,将来自两个表的联合的 EmployeeID 列的值赋给局部变量@v。按照定义,如果 SELECT 语句返回多个值,则将返回的最后一个值赋给变量。在这种情况下,会正确地将最后一个值赋给变量,但还会返回 SELECT UNION 语句的结果集。

复制代码
ALTER DATABASE AdventureWorks2008R2
SET compatibility_level = 90;
GO
USE AdventureWorks2008R2;
GO
DECLARE @v int;
SELECT @v = EmployeeID FROM HumanResources.Employee
UNION ALL
SELECT @v = EmployeeID FROM HumanResources.EmployeeAddress;
SELECT @v;


在包含顶级 UNION 运算符的语句中不允许变量赋值。返回错误 10734。

若要纠正该错误,请重写查询,如下例所示。

复制代码
DECLARE @v int;
SELECT @v = EmployeeID FROM
    (SELECT EmployeeID FROM HumanResources.Employee
     UNION ALL
     SELECT EmployeeID FROM HumanResources.EmployeeAddress) AS Test
SELECT @v;



ODBC 函数 {fn CONVERT()} 使用语言的默认日期格式。对于有些语言,默认格式为 YDM,这会导致在将 CONVERT() 与要求使用 YMD 格式的其他函数(如 {fn CURDATE()})结合使用时出现转换错误。


在转换为 ODBC 数据类型 SQL_TIMESTAMP、SQL_DATE、SQL_TIME、SQLDATE、SQL_TYPE_TIME 和 SQL_TYPE_TIMESTAMP 时,ODBC 函数 {fn CONVERT()} 使用样式 121(一种独立于语言的 YMD 格式)。



ODBC 函数 {fn CURDATE()} 仅返回“YYYY-MM-DD”格式的日期。


ODBC 函数 {fn CURDATE()} 同时返回日期和时间,例如“YYYY-MM-DD hh:mm:ss”。



日期时间内部函数(如 DATEPART)不需要字符串输入值,即可成为有效的日期时间文字。例如,SELECT DATEPART (year, ‘2007/05-30‘) 可以成功编译。


日期时间内部函数(如 DATEPART)需要字符串输入值,才能成为有效的日期时间文字。在使用无效的日期时间文字时,会返回错误 241。


二、DBA应该记住的系统存储过程:

DBA常用系统存储过程
系统存储过程 用处
sp_help 查看对象的相关说明
sp_helpdb 查看数据库的相关属性
sp_who 列出目前连接属性
sp_dboption 设置数据库的属性
sp_tableoption 设置数据表的选项
sp_configure 配置SQLServer服务器
sp_executesql 执行SQL语句
sp_helptext 查看对象内容
sp_lock 查看数据库锁定情况
sp_who2 显示连接的被锁定情况
sp_depends 查看对象的依赖对象
sp_addmessage 增加系统信息

时间: 2024-08-13 22:03:18

DBA查询命令积累——不断更新的相关文章

Linux常用命令积累

浏览目录命令: 1.cd  打开目录 cd  pp cd .. cd / cd   切换到用户自家目录 cd  /usr/bin    切换到/usr/bin  目录 cd - 回到最近一个目录 2.显示当前目录 pwd 3.显示当前目录列表 ls     目录 ls -a    显示隐藏文件 ls -l  简写成: ll    显示时间.拥有权等, 其中d 表示为目录 tree  以树形式显示目录,里层也能看到 浏览文件命令: 1.less  file1 查看文件file1单页内容 2.mor

Android系统代码查询命令集合

*#06# 显示MEID *#*#4636#*#* 显示版本,或更新相机韧体 *#*#7594#*#* 当长按关机按钮时,会出现一个切换手机部分设置及更改设定 WLAN. GPS 及蓝牙测试的代码 *#*#232338#*#* 显示 WiFi MAC 地址 *#*#1472365#*#* GPS 测试 *#*#1575#*#* 其它 GPS 测试 *#*#232331#*#* 蓝牙测试 *#*#232337#*# 显示蓝牙装置地址 *#*#8255#*#*启动 GTalk 服务监视器 显示版本的

Linux Centos6.x 下常用查询命令整理

Linux Centos6.x 下常用查询命令整理 ---- 1.系统基本信息 ---- 查看 系统版本 cat /etc/redhat-release [[email protected] ~]# cat /etc/redhat-release CentOS release 6.9 (Final) 查看 处理器架构 arch 或 uname -m [[email protected] ~]# arch x86_64 [[email protected] ~]# uname -m x86_64

Linux查询命令整理

在linux中,查找命令主要有find和grep,以及mlocate/locate 区别: (1)find命令是根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访问时间,修改时间等.  (2)grep是根据文件的内容进行查找,会对文件的每一行按照给定的模式(patter)进行匹配查找. (3)mlocate(locate) 命令用来查找文件或目录,速度快. 一.find命令 find 是文件层次的查找(包括子目录,就是对当前路径树查找) 基本格式:find  path  n

linux下的性能查询命令

(1)查看各个CPU核的使用情况 sudo top -d 1 进入之后,按1,会出现下面的CPU使用情况,其中us列反映了各个CPU核的使用情况,百分比大说明该核在进行紧张的任务. (2)查看哪个进程在哪个CPU核上运行 sudo top -d 1 进入之后,依次按f.j和空格,会出现如下(其中P列指示的是该进程最近使用的CPU核,如进程mencoder的P列为7,则表示mencoder最近在核7上运行,对于多线程甚至单线程的进程,在不同时刻会使用不同的CPU Core): (3)vmstat查

Linuxtone命令一句话(定期更新)

来自:bbs.linuxtone.org/thread-16-1-1.html 内容: 作者:NetSeek 1.删除0字节文件 find -type f -size 0 -exec rm -rf {} \; 2.查看进程 按内存从大到小排列 ps -e  -o "%C  : %p : %z : %a"|sort -k5 -nr 3.按cpu利用率从大到小排列 ps -e  -o "%C  : %p : %z : %a"|sort  -nr 4.打印说cache里的

主题:Mybatis3.0查询,保存,更新,删除数据。

近来打算开发一个技术框架,并应用此框架开发出一个论坛,开始打算用sturts2+spring+hibernate+jquery为基础,然后再进行封装,最后形成技术框架,但通过此网站获知mybatis比hibernate更灵活,实用.因此开始逐步接触mybatis. 以下是mybatis3.0的开发实例,使用的java环境jdk5.0,ide为eclipse3.7,数据库是oracle11g. 1.数据环境配置 Xml代码   <?xml version="1.0" encodin

Linux硬件信息查询命令

系统 uname -a              # 查看内核/操作系统/CPU信息 Linux hostname 2.6.18-128.el5 #1 SMP Wed Dec 17 11:41:38 EST 2008 x86_64 x86_64 x86_64 GNU/Linux head -n 1 /etc/issue      # 查看操作系统版本 Red Hat Enterprise Linux Server release 5.3 (Tikanga) cat /proc/cpuinfo  

一些常用命令积累

netapp卷扩容: df -Ah #查看磁盘总使用情况 vol size database +100g #给database卷扩容 一些常用命令积累,布布扣,bubuko.com