几个功能强大的分析SQL Server数据库结构的存储过程

本文涉及的产品
云数据库 RDS SQL Server,基础系列 2核4GB
简介:
通过SQL事件分析工具,跟踪SBO的数据库事务进程,发现以下几个数据库系统存储过程被频繁的使用:
  1. sp_tables,检索SQL Server数据库中的数据表。数据表分为系统表(SYSTEM TABLE,如sysObjects, sysColumns等),用户数据表(TABLE,SBO出于业务处理的需要而建立的数据表,一共900多张)和视图(VIEW,SBO出于业务处理的需要,一共创建了20个视图)。用户表通数据库用户相关,所有具有创建数据表的用户都有创建数据表的权利。在SBO中,通常带参数调用sp_tables,指定数据表类型为TABLE,指定数据表所有者为DBO,即数据库拥有者的用户数据表。SBO中的典型调用方式:exec sp_tables N'CINF', N'DBO', NULL, N'''TABLE''',检索数据库中是否存在数据表创建者为DBO数据表名为CINF的用户数据表。
  2. sp_columns,检索指定数据表的数据结构,数据表自然包括系统表、用户表和视图。这个存储过程至少需要一个参数--数据表,当然也可以指定表创建者、表或视图限定符,也可以指定显示哪些表字段。通过这个存储过程能够解析出数据库中的数据表的数据结构,包括字段名、字段类型、字段长度、数据精度、是否允许空值等等。数据类型以两种方式显示:SQL_DATA_TYPE和SS_DATA_TYPE,前者是SQL语言的通用类型标示,后者是SQL Server的数据类型标示,比如nvarchar类型,前者的标示为-9,而后者的类型标示为39;datatime前者为9,后者为111。SBO中的典型调用方式:exec sp_columns N'CINF', N'%', NULL, NULL, @ODBCVer = 3,检索表CINF支持版本ODBC协议为3的数据结构。
  3. sp_statistics,检索制定表的主键和索引。同样的,这个存储过程也至少需要数据表参数,当然也可以指定表创建者、表或视图限定符,也可以指定显示哪些表索引,是否只检索唯一性索引等。这个存储过程显示的指定数据表的索引列表及索引结构。SBO中的典型调用方式:exec sp_statistics N'CINF', N'dbo', NULL, N'%', N'N', N'Q',查询数据表DBO.CINF的所有性索引。
  4. sp_executesql,这是一个功能强大的用语指定SQL语句的系统存储过程,用以执行可以多次重用或动态生成的T-SQL 语句或批处理。其特点是动态性和可重用:言其动态,是可以将SQL语句特别是调用参数动态编写,而不需要事前固定,这一点上类似于C/C++中的函数动态参数支持;自然了,这个执行语句可以写入到内存中,在需要调用的时候动态传递不固定的参数序列,从而完成SQL语句和事务的执行。而动态替换 sp_executesql 中的参数,与使用 EXECUTE 语句执行字符串相比,有下列优点:
  • sp_executesql 中,T-SQL 语句的实际文本在两次执行之间未改变,所以查询优化器应该能将第二次执行中的 T-SQL 语句与第一次执行时生成的执行计划匹配。这样,SQL Server 不必编译第二条语句。
  • T-SQL 字符串只生成一次。
  • 整型参数按其本身格式指定。不需要转换为 Unicode。

本文转自foresun  51CTO博客,原文链接:http://blog.51cto.com/foresun/40495,如需转载请自行联系原作者
相关文章
|
2月前
|
SQL 关系型数据库 MySQL
阿里云RDS云数据库全解析:产品功能、收费标准与活动参考
与云服务器ECS一样,关系型数据库RDS也是很多用户上云必买的热门云产品之一,阿里云的云数据库RDS主要包含RDS MySQL、RDS SQL Server、RDS PostgreSQL、RDS MariaDB等几个关系型数据库,并且提供了容灾、备份、恢复、监控、迁移等方面的全套解决方案,帮助您解决数据库运维的烦恼。本文为大家介绍阿里云的云数据库 RDS主要产品及计费方式、收费标准以及活动等相关情况,以供参考。
|
3月前
|
SQL 人工智能 Linux
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
361 5
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
|
3月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
|
3月前
|
关系型数据库 分布式数据库 数据库
阿里云数据库收费价格:MySQL、PostgreSQL、SQL Server和MariaDB引擎费用整理
阿里云数据库提供多种类型,包括关系型与NoSQL,主流如PolarDB、RDS MySQL/PostgreSQL、Redis等。价格低至21元/月起,支持按需付费与优惠套餐,适用于各类应用场景。
|
4月前
|
SQL 人工智能 Linux
SQL Server 2025 RC0 发布 - 从本地到云端的 AI 就绪企业数据库
SQL Server 2025 RC0 发布 - 从本地到云端的 AI 就绪企业数据库
264 5
|
3月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎,提供高性价比、稳定安全的云数据库服务,适用于多种行业与业务场景。
|
SQL 数据库
如何快速备份还原Sql Server 数据库
备份数据库 选择你要备份的数据库,鼠标右键单击,选择任务-备份   弹出备份数据库窗口,选择添加    弹出选择备份目标窗口,点击浏览,选择存放备份数据库的目录,输入文件名,后缀名输入.bak,点击确定,确定,备份完成     还原数据库  鼠标右键单击数据库,选择还原文件和文件   ...
1494 0

热门文章

最新文章