当前位置:首页 » 编程语言 » sql异常处理怎么解除
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql异常处理怎么解除

发布时间: 2023-03-12 17:04:17

A. sql server 2008数据库提示异常如何处理

如果说还可以创建数据库。只是某个数据库出现可疑,那就是我说的那两个文件被删或者移除追问:
一直在运行的啊!好好的
没删除啊!我用过很多办法都不行啊
我脱离
然后再附加
曾经遇到这样的问题!我试过把mdf拿去其他机,然后成功!我就备份bak回来原来新建
还原
都很顺利!这次就是不行。回答:
是整个服务器质疑还是只是一个数据库?还能建库吗?既然祢有备份那就附加,如果附加不了估计就是服务器问题。建议把sql重新装下。估计就好了
有9个数据库
,各种程序都有!同样的程序的数据库有三个,有两个出问题!
之前出问题的也是同一种程序新装sql的话,我全部停止几个小时,肯定有损失的
而且麻烦!
我不能次次遇见这样的问题就新装sql吧!
我总要找个解决的办法的啊
哪怕出现“可疑”后能够备份bak数据库也好!
我也经常用数据库,也出现过质疑,基本就是我说的那两种情况,我仔细想了下,既然是质疑,我想肯定那两个备份文件服务器默认找不到的缘故,只能是被移除或者更名但是祢又说备份在呢还可以附加。而且祢又有那么多库。不能停!祢给我截个图吧。

B. 在SQL数据库中附加数据库时遇到如下错误,请问如何解决执行 Transact-SQL 语句或批处理时发生了异常

转csdn
sql专家邹建的解决办法
作者:邹建
直接restore或附加应该是不行的,
脚本+导数据肯定没有问题。
2005转到2000的步骤步骤
1.
生成for
2000版本的数据库脚本
2005
的manger
studio
--
打开"对象资源管理器"(没有的话按F8),
连接到你的实例
--
右键要转到2000的库
--
任务
--
生成脚本
--
在"脚本向导"的"选择数据库"中,
确定选择的是要转到2000的库
--
勾选"为所选数据库中的所有对象编写脚本"
--
在接下来的"选择脚本选项"中,
找到"为服务器版本编写脚本"项,
选择"SQL
Server
2000"
--
其他选项根据需要设置
--
最后把脚本保存到一个
.sql
脚本文件
2.
在2000中创建目标数据库
在查询分析器(或2005的manger
studio在打开脚本文件),
连接到SQL
Server
2000,执行上面生成的脚本.以创建一个新的数据库
3.
将数据从2005导到2000
2005
的manger
studio
--
打开"对象资源管理器"(没有的话按F8),
连接到你的实例
--
右键要转到2000的库
--
任务
--
导出数据
--
在"SQL
Server
导入和导出向导"的"选择数据源"步骤中,
确定选择的是要导出的数据库
--
在"选择目标"步骤中,
连接到
2000,
并选择步骤2新建的库
--
在"选择源表和源视图"中,
选择所有的表
--
最后完成

C. 执行SQL语句或批处理发生异常怎么解决【图】

没看到你的图,不过一般的原因是
日志文件
不存在,你可以手工建立一个同名的日志文件。

D. sql server异常怎么处理

你可以看一下异常谢谢,然后根据异常信息进行处理。
你可以在这里贴出一场信息,这样比较容易得到答案。
异常信息一般在操作sql时弹出
在系统日志里面也可以查看

E. SQL数据库错误如何解决,求大神出招

1、用低版本的SQL客户端管理软件尝试去联接高版本的SQL Server服务,有可能会报类似问题。
2、可能的解决方法,搞清楚SQL Server服务端的版本,在客户机上安装相应的版本管理软件后,再试着联接。
3、如果是联向本机的SQL,请确认你起动的“SQL Server Management Studio”版本是否正确,是否在本机上安装了多个版本的SQL。
4、如果实在搞不定,建议重新安装系统。特别提示,安装SQL Server前强列建议对系统进行一次镜像备份,因为它安装过程中如果出问题有可能很难干净的卸载。
************

5、如果是你的应用或网页后台代码中出现这类的问题,试着用“SQL Server Management Studio”联接数据库,试着关闭防火墙,如果“SQL Server Management Studio”能联,应用或后台代码不能联,有可能是联接SQL Server的代码或驱动不匹配。

F. sql执行出错,该怎么解决

运行数据库出现错误,解决步骤如下:
1、单击“开始”—“所有程序”—“MS SQL Server 2008R2”;
2、选择“Configuration tools”;
3、单击“SQL Server Configuration Manager”,打开;
4、右键单击“SQL Server(你的服务器名字)”,单击“启动”;
5、启动完成后,重新连接数据库即可。

G. 系统的一个异常SQL的处理

下面是在awr报告里面看到的有问题的sql,是9个变量的,在应用前台属于关联查询,在sqlplus里面手工执行检查实际执行情况如下:

下面是查询到的绑定变量值,可以通过查看v$sql_bind_capture视图来查看变量的实际值,如果时间比较久,可以使用如下的语句查看历史的绑定变量信息

以下是开启了autotrace 选项跟踪的手工执行情况,从执行效率上看是没有问题的。

从执行计划和表的数据量等方面判断如果sql的开销有问题,应该出现在表SAMS_CHECKINOUT上面,下面检查该表上面索引的创建语句看是否有问题

下面是在awr报告里面看到的有问题的sql,是9个变量的,在应用前台属于关联查询,在sqlplus里面手工执行检查实际执行情况如下:

下面是查询到的绑定变量值,可以通过查看v$sql_bind_capture视图来查看变量的实际值,如果时间比较久,可以使用如下的语句查看历史的绑定变量信息

以下是开启了autotrace 选项跟踪的手工执行情况,从执行效率上看是没有问题的。

从执行计划和表的数据量等方面判断如果sql的开销有问题,应该出现在表SAMS_CHECKINOUT上面,下面检查该表上面索引的创建语句看是否有问题

从上图可以看到,实际测试出来的执行计划跟awr报告上不同。

现在要对sql做测试

我们通过/*+ gather_plan_statistics */ 收集的相关执行计划及其统计信息与该SQL的AWR报告中的执行计划不同,且逻辑读的数量与AWR报告中的数值也相差巨大。因此,为了更准确的判断问题,按以下方法测试。
1、SQL在生产库(SAMS库的实例 1上,实例名为sams1 )上,在SQLPLUS中执行。
2、执行后,在同一SQLPLUS窗口中,立即执行以下命令:

结果如下:

1、在目录下创建一个脚本文件,用来获取更加相信的信息。
2、在SQLPLUS中,执行以下命令:@sql_rpt 3271368959 1 24114 24115 99vaabs5ptktb
4、执行完成后,在该目录下生成一个HTML文档,拿到更加详细的sql统计信息附带表的数据信息

初步分析如下:
1、该SQL执行一次的逻辑读为11130块次,其中第37步的逻辑读为6127块次,占了一半还多。而该步的操作是根据前面的获取到的ROWID,回表SAMS_CHECKINOUT获取"SC".“CHECKTIME"[TIMESTAMP,11], "SC"."VERIFYCODE"[CHARACTER,4], "SC"."SN"[NVARCHAR2,40], "SC"."INSYSTIME"[TIMESTAMP,11]四列的内容。
2、第38步对SAMS_ICLOCK表的全表扫描,对整个SQL的逻辑读也有较大贡献。但这个不是问题的关键

另外索引上有两个想法:
1、新建组合索引或改造已有索引,按如下顺序构建组合索引:
(BADGENUMBER, CHECKTIME, SN, VERIFYCODE, INSYSTIME)
2、在表SAMS_ICLOCK上创建组合索引,列名及顺序如下:
(SN, ALIAS)

这两个索引先暂时不创建,先从其他方面入手
由于在测试过程中,其生成的执行计划从未与AWR中显示的执行计划一致过。所以,这也许是造成不能模拟出2亿个块次逻辑读的一个原因。因此,把有问题的SQL的执行计划绑定到的测试SQL上。然后执行该测试SQL,并观察和分析测试SQL的执行过程和结果来做出进一步的处理。
为完成上述想法,需要用到ORACLE的SQL PROFILE在不改变SQL文本的前提下,改变其执行计划。操作方法如下:
1、在SQLPLUS中,生成问题SQL的创建SQL PROFILE的脚本。该脚本执行后,会要求分别输入SQL_ID和PLAN_HASH_VALUE的值。而我们问题SQL的SQL_ID是99vaabs5ptktb,PLAN_HASH_VALUE的值是4243346097。脚本执行完成后,会在运行SQLPLUS的当前目录中生成一个脚本文件。其名称在执行脚本过程中的结尾有显示。为描述方便,简称该生成的S脚本文件为“问题SQL脚本”。
2、再次执行该脚本,只不过这次输入测试SQL的SQL_ID和PLAN_HASH_VALUE。其SQL_ID为3kys9xsdjrm3b,PLAN_HASH_VALUE的值为561269195。为描述方便,简称该生成的脚本文件为“测试SQL脚本”
3、在文本编辑工具中分别打开上述两个脚本,将问题SQL脚本中出现在以下特征文字之间的文字(不包含特征文字 )复制并覆盖掉测试SQL脚本中同样位置的原文字:
h := SYS.SQLPROF_ATTR(
………
……….
……….
:signature := DBMS_SQLTUNE.SQLTEXT_TO_SIGNATURE(sql_txt);
4、将测试SQL脚本另存为一个文件(后缀名为.sql)
5、在SQLPLUS中执行第4步另存后的脚本。
6、在SQLPLUS中原封不动的执行原测试SQL。(注:执行前设置SQLPLUS格式,以避免格式混乱。比如 set lines 200 set pagesize 100 )
7、执行 select * from table(dbms_xplan.display_cursor('','','allstats projection last'));

如果正常生成脚本,没有报错信息出现在屏幕上,就是生成脚本成功。比如出现下面的提示就是正常的: