当前位置:首页 » 编程语言 » sqlserversql分析

sqlserversql分析

发布时间: 2022-05-16 10:33:06

sql查询分析器是什么

在这个对话框里,您可以指定数据库服务器的修复设置,以及原始安装的数据文件的位置。要让这一过程更容易和更快,就要把x86目录从SQL的光盘上复制到硬盘上,并把指向改到本地的副本。一旦验证完了所有的信息,点击“重建(Rebuild)”。然后系统就会提示您确认操作,如图C所示。

图C
点击“确定(Yes)”。一旦重建过程完成,您会看到一条重建成功的消息。您现在就有了一个全新的主数据库,准备好修复主数据库了。

首先,打开命令行提示符,输入Program FilesMicrosoft SQL ServerMssqlBINN目录下的SQLservr.exe –c –m命令,启动单用户模式下的SQL Server。结果如图D所示。

图D
在单用户模式下启动SQL Server之后,您可以利用备份文件修复主数据库。您可以用“查询分析器(Query Analyzer)”或者“SQL企业管理器(SQL EntERPrise Manager)”来修复它。如果使用查询分析器,您就要像图E一样运行查询。

图E
如果使用企业服务器,就要右击主数据库,选择“所有任务|修复数据库(All Tasks | Restore Database)”,浏览到您设备所在的位置。点击两次“OK”,您就可以成功地修复主数据库了。修复完主数据库,退出单用户模式,在正常的操作模式下重新启动SQL Server。

如果由于某种原因您的修复操作无法成功完成,那么您可以试试别的方法。只用简单地重建主数据库并添加驻留在数据目录下的所有数据库就可以了。您可以用企业管理器或者查询分析器来添加数据库。在企业管理器里,右击“数据库 (Databases)”,选择“添加数据库(Attach Database)”,在查询分析器里,用示例脚本就能够添加您的数据库了。

结束语

既然已经知道了如何在碰到灾难的情况下成功地重建主数据库,那么您可以把这些技术增加到灾难修复预案中去。这样的话,您就不用再在SQL Server的主数据库崩溃导致数据库服务器停止工作的情况下不知所措了。

Ⅱ 如何获取SQL2005下的SQL语句的语义分析

我想获取一段sql语句在 mssql2005下解析成的语句,
主要是想获取这个sql所用到的所有的表的名字。(ps:复杂的sql语句的)
请高手帮忙 在线等~
我的意思是要从用户输入的sql语句中提取该语句中所用的表
或者是:
sql 执行的步骤

1. 解析器

第 1 阶段是解析器阶段,它将 SQL 文本转换成语法树。这个阶段不查找系统目录中的任何信息,不访问数据库。

2. 语义分析

第 2 阶段分析由解析器创建的语法树,并产生用于查询的查询控制块和表达式树。要构建这些内部数据结构,它执行以下操作:

验证对象
解析 UDR
如果可能的话,消除常量
验证对象

第 2 阶段访问数据库中不同的系统目录,以验证查询所引用的所有数据库对象(诸如表、列、视图、类型、UDR 等等)是否都存在。它在数据库中找到这些对象的标识,然后创建查询控制块和表达式树。

我要的就是验证对象步骤里的表的信息

Ⅲ sql语句 sqlserver

朋友,sqlserver中不允许有两条相同的数据行存在,当你在插入数据时,如果插入的两条相同数据,系统将提示你:“列信息不足!”,这时候你只要插入一行自动增长行作为主键即可解决此问题,所以你这个问题只能查询一个相对相同的值,即是:一行中大部分字段相同的情况,语句如下:

select * from table1 a,table1 b where a.id =b.id and a.col1=b.col1 and a.col2 = b.col2;

这是一个自联接,即:表自己与自己作联接查询,如果还要查的更精确,可以在where后面加更多的字段来确定选定的行。

请好好理解这些概念,祝你成功 ^ ^)

Ⅳ 简述SQL Server企业管理器和查询分析器的作用

它是用来对本地或者远程服务器进行管理操作的服务器应用程序查询分析器:sqlserver2000查询分析器是一种图形工具,它允许用户输入和执行sql语句,并返回语句的执行结果。
一、企业管理器是SQLServer2000中最重要的一个产品组件。用户和系统管理员通过企业管理器不仅能够配置系统环境和管理SQLServer,而且所有SQLServer对象的建立与管理都可以通过它来完成。企业管理器的具体功能包括:注册和管理SQLServer服务器;管理SQLServer服务;创建和管理数据库及各种数据库对象;备份和恢复数据库;对SQLServer系统进行安全管理;编写和执行T-SQL脚本等。
二、企业管理器,它具有一个遵从微软管理控制台(MMC)的管理界面。左窗格以层叠列表的形式(树型)显示注册的所有SQLServer服务器,以及每个服务器中存储的数据库对象和提供的服务;右窗格显示树型目录中所选择目录项的具体内容。
三、企业管理器和查询分析器都是服务器端集成的工具,我们可以通过企业管理器查看数据库的结构和相关的对象,而用查询分析器模拟客户端的功能,这就类似联接数据库的操作,用查询分析器可以在本地就把数据库联接的问题解决。在“控制台根目录”下,有着我们要管理的SQLServer服务器,顺着它逐级展开,展开每一个节点时,右边的主界面中都会显示这个节点的内容。我们可以一直看到我们的SQLServer数据库连接甚至更多。
四、菜单,选中“SQLServer服务器”,查看一下“操作”菜单上的内容;再看一下“SQLServer服务器”的右键菜单,会发现它们完全一样。我们再选中“数据库”这个节点,查看一下右键菜单和“操作”菜单的子菜单,它们还是完全一样。这说明,“控制台”中的菜单,它们的内容不是一成不变的,而是由“控制台”所管理的内容来决定的。
五、“查看”菜单,它包含有“大图标”、“小图标”、“列表”、“详细信息”几个选项,我们可以通过它来设定界面中的内容以什么方式来显示。下面的“自定义”命令可以打开“自定义视图”对话框,我们可以通过这个对话框来更改选项以显示或者隐藏MMC中的项目,例如“控制台树”或者“标准工具栏”等。“工具”菜单里面的内容是SQLServer所特有的,单独的“控制台”不会有这项功能,它里面的内容全部是针对“SQLServer企业管理器”的。我们可以通过它来调度作业、打开“SQL查询分析器”、备份和还原数据库以及管理SQLServer消息等。而且,“SQLServer企业管理器”自带了许多向导,我们也可以在这里启动这些向导(事实上我们绝大多数情况下是通过这里启动这些向导)。

Ⅳ SQL Server 的优点有哪些。

SQL Server是一个关系数据库管理系统,它最初是由Microsoft, Sybase和Ashton-Tate三家公司共同开发的于1988 年推出了第一个OS/2 版本,在Windows NT 推出后,Microsoft与Sybase在SQL Server的开发上就分道扬镳了,Microsoft将SQL Server移植到Windows NT系统上专注于开发推广SQL Server的Windows NT版本,Sybase则较专注于SQL Server在UNIX操作系统上的应用.Microsoft SQL Server以后简称为SQL Server或MS SQL Server 。

随着信息技术的发展,计算机处理数据的方式也发生着变化,文件管理系统--数据库管理系统。Microsoft SQL Server是一个分布式的关系型数据库管理系统,具有客户机/服务器体系结构,采用了Transact-sql的sql语言在客户机与服务器间传递客户机的请求与服务器的处理结果。

众所周知,SQL Server能够满足今天的商业环境要求不同类型的数据库解决方案。它一种应用广泛的数据库管理系统,具有许多显着的优点:易用性、适合分布式组织的可伸缩性、用于决策支持的数据仓库功能、与许多其他服务器软件紧密关联的集成性、良好的性价比等。性能、可伸缩性及可靠性是基本要求,而进入市场时间也非常关键。

除这些SQL Server的优点外,SQLServer还为您的数据管理与分析带来了灵活性,允许单位在快速变化的环境中从容响应,从而获得竞争优势。从数据管理和分析角度看,将原始数据转化为商业智能和充分利用Web带来的机会非常重要。作为一个完备的数据库和数据分析包,SQLServer为快速开发新一代企业级商业应用程序、为企业赢得核心竞争优势打开了胜利之门。作为重要的基准测试可伸缩性和速度奖的记录保持者,SQLServer是一个具备完全Web支持的数据库产品,提供了对可扩展标记语言 (XML)的核心支持以及在Internet上和防火墙外进行查询的能力。

SQL Server的优点众多,但是Microsoft SQL Server和其他数据库产品相比也存在着以下劣势:

1开放性。只能运行在微软的windows平台,没有丝毫的开放性可言。
2可伸缩性,并行性。并行实施和共存模型并不成熟,很难处理日益增多的用户数和数据卷,伸缩性有限。
3性能稳定性。SQLServer当用户连接多时性能会变的很差,并且不够稳定。
4使用风险。SQLServer完全重写的代码,经历了长期的测试,不断延迟,许多功能需时间来证明。并不十分兼容早期产品。使用需要冒一定风险。
5客户端支持及应用模式。只支持C/S模式。

Ⅵ sqlserver executionstack怎么分析

1,victim-list没什么可分析的。
2,process-list中关于各个process的详细信息很重要。
3,再看process中的inputbuf。这个tag表明了process正在运行的语句,因此对于定位死锁非常重要。但这里有一个问题,比如上例中,inputbuf是一个存储过程,其中又嵌套了很多其他的存储过程,而我们需要在其中找出直接导致死锁的语句并优化,从而解决或减少死锁。自此我们已经有的信息是:导致死锁的语句由inputbuf中的语句调用,同时导致死锁的语句必定是对表MatchService的修改语句。如果存储过程很简单,到此DBA已经能够找到直接导致死锁的sql了,分析过程到此结束。而如果存储过程很复杂,则需要进一步分析。
4,现在再进一步考察tag, executionStack。executionStack表明了死锁发生时,由该process调用的,正在运行的所有sql。上例中有4条sql。同时仔细观察上例可以发生,两个process的executionStack是完全相同的,因此考察一个就可以了。另外,如果procname不为空则直接得到了sql,但上例中该tag为空。
我们可能还需要找出包含该sql的具体存储过程,然后进行优化。出了用sql查询外,推荐使用一个叫“SQL Search”的第三方工具,很方便,免费的。

Ⅶ 如何利用sqlserver数据分析技术分析安全日志

定期分析sqlserver日志是DBA很重要的任务,那如何才能查看sqlserver日志呢?
在SQL Server 7.0和SQL Server2000中,可以用下面的命令查看:
DBCC log ( {dbid|dbname}, [, type={0|1|2|3|4}] )
参数:
Dbid or dbname - 任一数据库的ID或名字
type - 输出结果的类型:
0 - 最少信息(operation, context, transaction id)
1 - 更多信息(plus flags, tags, row length)
2 - 非常详细的信息(plus object name, index name,page id, slot id)
3 - 每种操作的全部信息
4 - 每种操作的全部信息加上该事务的16进制信息
默认 type = 0
要查看MSATER数据库的事务日志可以用以下命令:
DBCC log (master)
释放日志空间
1.清空日志
DUMP TRANSACTION 库名 WITH NO_LOG
2.截断事务日志:
BACKUP LOG 数据库名 WITH NO_LOG
3.收缩数据库文件(如果不压缩,数据库的文件不会减小
企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件
--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
--选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
也可以用SQL语句来完成
--收缩数据库
DBCC SHRINKDATABASE(客户资料)
--收缩指定数据文件,1是文件号,可以通过这个语句查询到:select * from sysfiles
DBCC SHRINKFILE(1)
4.为了最大化的缩小日志文件(如果是sql 7.0,这步只能在查询分析器中进行)
a.分离数据库:
企业管理器--服务器--数据库--右键--分离数据库
b.在我的电脑中删除LOG文件
c.附加数据库:
企业管理器--服务器--数据库--右键--附加数据库
此法将生成新的LOG,大小只有500多K
或用代码:
下面的示例分离 pubs,然后将 pubs 中的一个文件附加到当前服务器。
a.分离
E X E C sp_detach_db @dbname = 'pubs'
b.删除日志文件
c.再附加
E X E C sp_attach_single_file_db @dbname = 'pubs',
@physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf'
5.为了以后能自动收缩,做如下设置:
企业管理器--服务器--右键数据库--属性--选项--选择"自动收缩"
--SQL语句设置方式:
E X E C sp_dboption '数据库名', 'autoshrink', 'TRUE'
6.如果想以后不让它日志增长得太大
企业管理器--服务器--右键数据库--属性--事务日志
--将文件增长限制为xM(x是你允许的最大数据文件大小)
--SQL语句的设置方式:
alter database 数据库名 modify file(name=逻辑文件名,maxsize=20)
特别注意:
请按步骤进行,未进行前面的步骤,请不要做后面的步骤
否则可能损坏你的数据库.
一般不建议做第4,6两步
第4步不安全,有可能损坏数据库或丢失数据
第6步如果日志达到上限,则以后的数据库处理会失败,在清理日志后才能恢复.

另外提供一种更简单的方法,建议大家使用。
更简单的方法:
1。右建数据库属性窗口--故障还原模型--设为简单
2。右建数据库所有任务--收缩数据库
3。右建数据库属性窗口--故障还原模型--设为大容量日志记录

Ⅷ SQLServer如何用T—SQL命令查询一个数据库中有哪些表

所有用户表都存放在数据库中的系统对象表sysobjects中。

笔者以个人专用数据库为例:

select *

from sysobjects --系统对象表

where xtype = 'U' --U表示所有用户表

执行后影响的行数为180(rows),如下图:

热点内容
微信收藏在哪个文件夹 发布:2024-05-09 03:47:03 浏览:826
ftp远程登录 发布:2024-05-09 03:44:40 浏览:226
linuxoracle配置环境变量配置 发布:2024-05-09 03:44:38 浏览:499
分类信息网站的源码 发布:2024-05-09 03:31:18 浏览:99
sqlupdate日期 发布:2024-05-09 03:27:14 浏览:880
java培训有人要吗 发布:2024-05-09 03:21:16 浏览:970
c语言多次输入数据 发布:2024-05-09 03:12:50 浏览:738
pythonide使用 发布:2024-05-09 02:56:52 浏览:350
社区电商源码 发布:2024-05-09 02:33:00 浏览:150
辽事通登记需要的密码是什么 发布:2024-05-09 02:25:45 浏览:284