文档库 最新最全的文档下载
当前位置:文档库 › 数据库过大压缩处理方法

数据库过大压缩处理方法

数据库过大压缩处理方法
数据库过大压缩处理方法

棠湖宾馆问题处理报告

第一步备份数据库

把备份数据库到F:\\备份数据库

第二步附加数据库并命名为mjhis60_cl

第三步删除mjhis60_cl中数据,准备导入数据前准备

--在查询分析器中选择附加的数据库mjhis60_cl运行:

select 'delete '+name FROM SYSOBJECTS WHERE TYPE = 'U'

--然后把返回的结果集复制,新建一个查询分析器窗口,把复制的内容粘贴下运行!在删除过程中报错,删除中断,原因是数据库提示应该DBCC检查日志

第四步使用DBCC check(mjhis60-cl)

发现索引错误(如图),然后进一步修复:

--单用户模式

alter database mjhis60_cl set single_user with rollback immediate

go

--快速修复

DBCC CHECKDB ('mjhis60_cl', REP AIR_F AST)

go

--重建索引并修复

DBCC CHECKDB ('mjhis60_cl', REP AIR_REBUILD)

--如果必要允许丢失数据修复

DBCC CHECKDB ('mjhis60_cl', REP AIR_ALLOW_DATA_LOSS)

--还原数据库为多用户模式

alter database test set multi_user with rollback immediate

第五步DCBB检查数据库,发现无问题,然后继续删除数据

DBCC CHECKDB ('mjhis60_cl')

第六步压缩数据库

--1.清空日志

DUMP TRANSACTION 库名WITH NO_LOG

--2.截断事务日志:

BACKUP LOG 数据库名WITH NO_LOG

--3.收缩数据库文件(如果不压缩,数据库的文件不会减小

企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件

--选择日志文件--在收缩方式里选择收缩至xxM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了

--选择数据文件--在收缩方式里选择收缩至xxM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了

第七步将原数据库mjhis60中的数据通过数据导入导出工具导入到mjhis60_cl

第八步将导入成功的数据库mjhis60_cl进行验证,客户说数据没有问题,则将数据库替换到正常使用的数据库目录

已经处理完成,客户签字确认

SQL数据库置疑的解决方法

SQL2000数据库置疑的解决方法 首先,在任何操作之前,必须要备份数据库(重要) 一、分离数据库 1、点击“程序》Microsoft SQL Server》企业管理》”,打开企业管理器 2、展开服务器组,然后展开服务器,选中要分离的数据库 3、点击鼠标右键“所有任务》分离数据库”,出现如下窗口 4、点击确定,该选定的数据库就被分离。 5.分离后,把原数据库里面.MDF(主数据文件).LDF(事务日志文件)这两个文件复制到目标盘下,例:D盘下 注意事项,只有“使用本数据库的连接”数为0时,该数据库才能分离。所以分离数据库时尽量断开所有对要分离数据库操作的连接,如果还有连接数据库的程序,会出现数据库的连接状态窗口,显示正在连接此数据库的机器以及名称,点击清除按钮将从服务器强制断开现有的连接。

二、附加数据库 1、在附加数据库之前,首先要移动数据库文件 在附加数据库之前,您必须将与数据库关联的 .MDF(主数据文件).LDF(事务日志文件)这两个文件复制到目标硬盘下,或是同一服务器的不同硬盘目录下。这两个文件一般位于C:\Program Files\Microsoft SQL Server\MSSQL\Data 目录下。 2、点击“程序》Microsoft SQL Server》企业管理》”,打开企业管理器 3、展开服务器组,然后展开服务器 4、右击"数据库",然后选择“所有任务》附加数据库”,弹出窗口 5、输入要附加的数据库的MDF名称。如果不确定文件位于何处,单击浏览("...")搜索。若要确保指定的 MDF 文件正确,请单击"验证"。在"附加为"框内,输入数据库的名称。数据库名称不能与任何现有数据库名称相同。指定数据库的所有者 6、单击"确定"按钮。新附加的数据库的数据库节点即创建在"数据库"文件夹中

影响Informix数据库性能的主要参数

影响Informix数据库性能的主要参数 影响CPU使用率的配置参数和环境变量 Online 配置文件onconfig中的下列参数对CPU的利用率有明显的影响: ? NUMCPUVPS ? SINGLE_CPU_VP ? MULTIPROCESSOR ? AFF_NPROCS ? AFF_SPROC ? NUMAIOVPS ? OPTCOMPAND ? NETTYPE NUMCPUVPS、MULTIPROCESSOR和SINGL_CPU_VP NUMCPUVPS参数规定了Online 开始启动的CPU VP的数量。分配的CPU VP 的个数不要超过可以为它们服务的CPU的个数。 ?对于单处理器的计算机系统,Informix 建议使用一个CPU VP。 ?对于有4个以上CPU,主要用做数据库服务器的多处理器系统,Informix 建议设置NUMCPUVPS的值等于处理器总数减一。 ?对于双处理器系统,运行两个CPU VP可能会改善性能。这需要监控操作系统的CPU使用情况。可以使用操作系统命令sar 或vmstat。 如果运行多个CPU VP,应将MULTIPROCESSOR 设置为1,当设置MULTIPROCESSOR 为1时,Online 以对应于多处理器的方式执行锁定。否则,设置该参数为0。 注意:如果设置SINGLE_CPU_VP参数为,则NUMCPUVPS 参数的值也必须是1,如果后者大于1,Online就不能初始化并显示下面的错误信息: Cannot have 'SINGLE_CPU_VP' now-zero and 'NUMCPUVPS' greater t han 1 AFF_NPROCS 和AFF_SPROC 在支持Online和客户应用的系统上,可以通过操作系统把应用连接到某些特定的CPU。这样做可以有效地保留剩余的CPU给Online CPU VP使用,它们是用AFF--NPROCES和AFF_SPROC配置参数连接到剩余CPU的。 AFF_NPROCS指定了连接到Online的CPU VP上的CPU的个数。连接一个CPU VP 到一个CPU 会引起该CPU VP在这个CPU上的排它性运行。 AFF_SPROC指定了Online把CPU VP连接到CPU上时所启动的CPU。

数据库选型的五大要素

数据库选型的五大要素 面对品种繁多的数据库产品,如何才能独具慧眼,选中适合自己的数据库产品呢?众所周知,正确的评估、选型与数据库技术本身同样重要。而通常,数据库厂商都会在性能清单和技术基准表中尽量展现产品最佳的一面,对产品弱点却避免提及或进行遮掩,关于这一点,业界已经是人尽皆知了。其实在挑选和评估过程中,首要目标是选择一款能够满足甚至超过预定要求的技术或解决方案。选型的正确方法将使用户在面对众多产品时,提高其做出最佳选择的能力。 数据库选型时,必须考虑以下五大因素: 1. 开发要求 2. 性能/成本 3. 数据库运行和管理 4. 可升级性 5. 总体拥有成本 开发要求 首先,需要清楚自己究竟想使用什么开发技术。例如,你是要以https://www.wendangku.net/doc/478005475.html,访问传统的关系型数据库?还是要以纯面向对象技术构建J2EE应用平台?又或是需要建设XML Web Services?如果你要实现的是纯关系型的开发典范,那么实际要 使用的受支持的标准(和非标准)SQL功能有多少? 如果你要规划的是面向对象开发策略,那么在原计划里的数据库支持真正的面向对象吗?它是如何支持的?若有需要, 它能同时提供SQL的功能吗?数据库支持这个功能吗?虽然,有些关系型数据库声称支持对象开发,但实际上并不是直 接支持的。这种非直接的体系结构将导致更多的事务处理故障,以及潜在的可升级性和性能问题。 另外,你还需要确定自己的前端技术如何与后端进行“对话”。你的业务逻辑是放在客户机一端呢?还是放在服务器一端?你要使用哪些脚本语言?它们与后端服务器的兼容性如何?它们是快速应用开发(RAD)环境吗? 目前,实现基于关系型数据库的应用可以选择传统的主流品牌,这些数据库产品有着很成熟的关系技术以及广泛的应用资源。但是,如果实现的是基于面向对象技术的应用、又或是数据结构更为复杂时,不妨考虑目前一些公司推出的所谓 后关系数据库。它所代表的正好是关系数据库和面向对象技术的融合,以多维数据引擎作为核心,从根本上支持复杂的对象存储及主流的二维表,同时也已经配备了功能强大的应用服务引擎,可作对象逻辑操作的平台。它的出现已经为传统数据库领域带来了冲击,而在面向对象数据库方面更是广受欢迎。 性能/成本 测量数据库性能最常见的方法是TPC基准。TPC明确地定义了数据库方案、数据量以及SQL查询。测量的结果是,在特 定的操作系统上,配置了特定的数据库版本,以及在惊人的硬件条件下,每项事务的成本是多少——其中的事务可以是TPC测试中定义的任何数据库操作。 从理论上来讲,这类基准旨在提供不同产品间客观的比较值。但在现实中,这些方案又有多少能准确反映并回答你在挑选技术时所存在的疑惑?其次,所有技术厂商发布的TPC基准都会超过以前发布的结果。这样,TPC基准在更大程度上 反映的是为解决问题而投入的内存和CPU量,而不是数据库性能的任何真实表现。 以笔者多年所见,只有在真实的环境中进行实际的比较测试才可以推断出数据库的预期性能及评估所需成本。常用的方法包括平衡移植,把原来的数据转移到类似硬件上的另一套数据库,然后以真实的客户端连接这套测试对象。又或是以数据产生器针对真实的数据模型,建立出庞大的数据量,再以客户端连接作测试。 这种做法跟实验室中的做法的不同之处有以下几点:第一,试验中的硬件构架跟你预期的方案不会有太大的差别;第二,所测试的事务在宽度和深度方面跟未来计划的也差不太远;第三,如果是硬件条件一样,我们可以直接看出测试对象跟原来方案有着多少差异。

SQLServer2000数据库置疑的解决方法

SQLServer2000数据库置疑的解决方法sql2000中MSDB数据库置疑状态的解决方法 问题:我的SQL Server 2000的MSDB数据库,因为不正常关机,造成了置疑状态,请问采用什么方法能够弥补,解决方法一:你可以采用以下的代码进行修复: USE MASTER GO SP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDE GO UPDATE SYSDATABASES SET STATUS =32768 WHERE NAME='msdb' Go sp_dboption 'msdb', 'single user', 'true' Go DBCC CHECKDB('msdb') Go update sysdatabases set status =28 where name='msdb' Go sp_configure 'allow updates', 0 reconfigure with override Go sp_dboption 'msdb', 'single user', 'false' Go 解决方法二:MSDB数据库解决过程 难点:由于MSDB数据库不能删除,将其文件拷出来,再次附加数据库,但新的不能同名,遇到了困难。附加数据库不能叫MSDB,也就是

1:先停止整个数据库,将该数据库的文件msdbdata.mdf和msdblog.ldf拷贝粘贴出来到另一个目录下。 2:将以上的文件再拷贝到另一个目录下,也就是说复制两次。 3:选择数据库右击鼠标 --》所有任务--》附加数据库将复制出的一个备份文件附加上去,其中,数据库名称叫MSDB1,用户是SA或ADMINISTRATOR。 4:将MSDB1数据库备份,备份成一个文件,当时我的叫MSDB。BAK。 5:选择置疑的数据库MSDB,选择恢复数据库,将刚才备份出来的数据库强行恢复到MSDB。 6:问题解决,MSDB库又能正常使用。 完成后赶快将数据库再次备份一次。呵呵。 另附:数据库置疑解决办法 还有,现在修复好了,但昨天的数据丢失了,以前的数据倒还在。难道昨天发生了什么异常情况, 我这里一篇解决数据库质疑的文档,提供给大家,日后备用: SQL SERVER数据库置疑后恢复步骤 1( 恢复步骤: a.将smlog_log.ldf文件备份到其它目录下; b.将源目录下的smlog_log.ldf文件改名为smlog_log_bak.ldf; c.执行以下语句修改数据库的状态: use Master go update sysdatabases set status=32768 where name=’数据库名称’ --修改状态 go shutdown with nowait --停止数据库服务器 go

数据库置疑_及修复

Sqlserver 数据库823错误(置疑)的解决方案 一、SQL-Server数据库置疑: 1、异常情况:服务器在正常运行的情况下突然断电,导致数据库文件损坏,具体表现是:数据库名后面有“(置疑)”字样。 2、异常分析:关于823错误的SQL-SERVER 中的帮助: ================================ 错误823 严重级别24 消息正文 在文件%4的偏移量,%3的索引,%2过程中,检测到I/O 错误%1。 解决办法: 准备工作: ①停止sql server服务,找到置疑库的mdf,ldf文件复制出来,这里假设叫kmcyV51_data.mdf(ldf),并与企业管理器中删除该数据库; ②用KM安装包下db_setup.exe建立一个空库(名称和质疑数据库名一致kmcyv51),选择服务器节点,右键停止数据库服务,把损坏的数据库文件kmcyv51_Data.mdf覆盖刚才新建数据库目录下,同时删除kmcy_v51_log.LDF文件;右键节点启动数据库服务,发现数据库名kmcyv51后面有“置疑”字样。 打开SQL自带查询分析器,在master数据库分别执行如下SQL语句: (注意更改数据库名) use master exec sp_configure 'allow updates',1 RECONFIGURE WITH OVERRIDE /* 打开修改系统表开关*/ update sysdatabases set status=32768 where name = 'kmcyv51' /* 设置紧急状态*/ sp_dboption 'kmcyv51', 'single user', 'true' /*启用单用户*/ DBCC REBUILD_LOG ('kmcyv51','E:\km软件_data\KmcyV51_Log.LDF') /* 重建LDF文件*/ update sysdatabases set status=28 where name= 'kmcyv51' /* 设置正常状态*/ --或者 update sysdatabases set status = 16 where name = 'kmcyv51' RESTORE DATABASE kmcyv51 WITH RECOVERY /* 恢复数据库*/ exec sp_configure 'allow updates',0 RECONFIGURE WITH OVERRIDE /* 关闭修改系统表开关*/ sp_dboption 'kmcyv51', 'single user', 'false' /* 关闭单用户模式*/ 如果问题依然存在,最笨的一个方法就是新建另一个数据库,把 原数据库各个表的数据导出到新建数据库表中。

数据库选型的五大要素

数据库选型的五大要素 ■ 余詠衡 如果引用结构化的决策方法,确保本文所介绍的数据库选型应考虑的五大要素都得到全面及客观的评估,那么根据其与项目、产品和组织的关系进行利害权衡,就能做出理智的数据库选型决策。 面对品种繁多的数据库产品,如何才能独具慧眼,选中适合自己的数据库产品呢?众所周知,正确的评估、选型与数据库技术本身同样重要。而通常,数据库厂商都会在性能清单和技术基准表中尽量展现产品最佳的一面,对产品弱点却避免提及或进行遮掩,关于这一点,业界已经是人尽皆知了。其实在挑选和评估过程中,首要目标是选择一款能够满足甚至超过预定要求的技术或解决方案。选型的正确方法将使用户在面对众多产品时,提高其做出最佳选择的能力。而数据库选型时,必须考虑以下五大因素。 开发要求 首先,需要清楚自己究竟想使用什么开发技术。例如,你是要以https://www.wendangku.net/doc/478005475.html,访问传统的关系型数据库?还是要以纯面向对象技术构建J2EE应用平台?又或是需要建设XML Web Services?如果你要实现的是纯关系型的开发典范,那么实际要使用的受支持的标准(和非标准)SQL功能有多少? 如果你要规划的是面向对象开发策略,那么在原计划里的数据库支持真正的面向对象吗?它是如何支持的?若有需要,它能同时提供SQL的功能吗?数据库支持这个功能吗?虽然有些关系型数据库声称支持面向对象开发,但实际上并不是直接支持的。这种非直接的体系结构将导致更多的事务处理故障,以及潜在的可升级性和性能问题。 另外,你还需要确定自己的前端技术如何与后端进行“对话”。你的业务逻辑是放在客户机一端呢?还是放在服务器一端?你要使用哪些脚本语言?它们与后端服务器的兼容性如何?它们是 快速应用开发(RAD)环境吗? 目前,实现基于关系型数据库的应用可以选择传统的主流品牌,这些数据库产品有着很成熟的关系技术以及广泛的应用资源。但是,如果实现的是基于面向对象技术的应用、又或是数据结构更为复杂时,不妨考虑目前一些公司推出的所谓后关系数据库。它所代表的正好是关系数据库和面向对象技术的融合,以多维数据引擎作为核心,从根本上支持复杂的对象存储及主流的二维表,同时也已经配备了功能强大的应用服务引擎,可作对象逻辑操作的平台。它的出现已经为传统数据库领域带来了冲击,而在面向对象数据库方面更是广受欢迎。 平衡性能与成本 测量数据库性能最常见的方法是TPC基准。TPC明确地定义了数据库方案、数据量以及SQL查询。测量的结果是,在特定的操作系统上,配置了特定的数据库版本,以及在惊人的硬件条件下,每项事

SQL server 2008 数据库置疑的处理办法

SQL server 2008 数据库置疑的处理办法 1 把问题数据库备份后直接删除 停掉SQLSERVER服务,把服务器上出问题的数据库, 假设名称为ErrorDB的数据库文件及日志文件备份到其他目录,然后直接将其删除,把其数据库文件及日志文件也删除 2 新建同名数据库 启动SQLSERVER服务,新建同名数据库ErrorDB,文件目录和日志和原来一致 3 用备份的数据库文件替换新的数据库文件 停掉SQLSERVER服务,把备份的数据库文件替换新的数据库文件(只替换数据库文件,不替换日志文件) 启动SQLSERVER服务,打开数据库,这时数据库应该是不能访问的 -------------------设置应急模式、单用户模式、检查修复数据,取消单用户模式 ---------------------- 4 将数据库设置为应急状态 alter database ErrorDB set emergency 执行后,为了保险起见,重新停止、开启的SQLSERVER服务 再打开数据库,已经可以看到里面的内容了,如表,视图,存储过程等 数据库名称后有紧急标志,能看到数据库结构,但无法进行备份等操作 5 将数据库设置为单用户模式 ALTER DATABASE ErrorDB SET SINGLE_USER 6 对数据库进行检查修复 dbcc checkdb(EIMSDb,REPAIR_ALLOW_DATA_LOSS) dbcc checkdb(EIMSDb,REPAIR_REBUILD) 操作后,仍然停止启动SQLSERVER服务(不确定是否需要,我只是为了想无干扰查看执行后的数据库状况)重新打开数据库,已经是正常状态了,没有应急提示了 7 取消单用户模式 exec sp_dboption EIMSDb, N'single', N'false'

SQL数据库置疑解决方案(原因分析、预防措施、修复方法)附图

SQL数据库置疑解决方案 一、数据库置疑产生的原因 1、SQL Server所在分区空间是否够? 数据库文件大小是否达到最大文件限制? FAT32的格式只支持4G以内的文件。 2、数据库文件损坏或被非正常删除时出现这种情况。 3、病毒防火墙的扫描也会引起数据库置疑。 4、当SQL Server启动时,将会尝试获得对数据库文件的排他访问权,如果此时该文件被其他程序占用,或者遗失,数据库将会被标记为置疑。 5、电脑非法关机也会造成数据库置疑。 6、电脑磁盘有坏道有可能造成数据库置疑。 二、数据库置疑的预防 1、数据库存放的盘符,空间是否够大,经常检查盘符的空间。 2、数据库存放的盘符的格式设置为NTFS格式。 3、进行病毒清除时,尽量把SQL服务停掉,再进行检查。 4、尽量减少非正常关机。 5、建议客户购买后备电源。 6、给客户实施软件之后一定要做好自动备份。 7、建议客户每隔一定时间手动备份一次。 三、数据库置疑的修复 1、正常的备份、SQL数据库恢复方式 正常方式下,我们要备份一个数据库,首先要先将该数据库从运行的数据服务器中断开,或者停掉整个数据库服务器,然后复制文件。 卸下数据库的命令:Sp_detach_db 数据库名 连接数据库的命令:Sp_attach_db或者sp_attach_single_file_db s_attach_db [@dbname =] ′dbname′, [@filename1 =] ′filename_n′[,...16] sp_attach_single_file_db [@dbname =] ′dbname′, [@physname =] ′physical_name′ 使用此方法可以正确恢复SQL Sever7.0和SQL Server 2000的数据库文件,要点是备份的时候一定要将mdf和ldf两个文件都备份下来,mdf文件是数据库数据文件,ldf是数据库日志文件。 例子: 假设数据库为pdm,其数据文件为pdm_data.mdf,日志文件为pdm_log.ldf。 下面我们讨论一下如何备份、恢复该数据库。 卸下数据库:sp_detach_db 'pdm' 连接数据库:sp_attach_db 'pdm','C:\Program Files\Microsoft SQL Server\MSSQL\Data\pdm_data.mdf','C:\Program Files\Microsoft SQL Server\MSSQL\Data\pdm_log.ldf'

数据库状态为置疑.只读.脱机.紧急模式时的解决办法

SQl数据库状态为置疑,只读\脱机\紧急模式时的解决办法 SQl数据库状态为置疑,只读\脱机\紧急模式时的解决办法2010-05-08 18:44这是SQL2000常遇到的错误,楼主按照以下方法修复,修复完,检查一下数据库是否已完全修复,没完全修复时最低都可导出数据,要用数据库生成一个空库脚本,把修复数据库的数据用DTS导入到新库。。。 A.建立一个供恢复使用的数据库 我们使用默认方式建立一个供恢复使用的数据库(如iBusinessWork)。可以在SQL Server Enterprise Manager 里面建立。 B.停掉数据库服务器。 C.调整数据库与日志文件. 将刚才生成的数据库的日志文件iBusinessWork_log.ldf删除,用要恢复的数据库mdf文件覆盖刚才生成的数据库数据文件iBusinessWork_data.mdf。 D.启动数据库服务器。 此时会看到数据库iBusinessWork的状态为“置疑”。这时候不能对此数据库进行任何操作。 E.设置数据库允许直接操作系统表。 use master go sp_configure 'allow updates',1 go reconfigure with override go F.设置iBusinessWork为紧急修复模式 update sysdatabases set status=-32768 where dbid=DB_ID('iBusinessWork') 关闭打开企业管理器,此时可以在SQL Server Enterprise Manager里面看到该数据库处于“只读\置疑\脱机\紧急模式”可以看到数据库里面的表,但是仅仅有系统表 G.下面执行真正的恢复操作,重建数据库日志文件 dbcc rebuild_log('iBusinessWork','E:\Microsoft SQL Server\Data\iBusinessWork_log.ldf') 执行过程中,如果遇到下列提示信息: 服务器: 消息5030,级别16,状态1,行 1 未能排它地锁定数据库以执行该操作。 DBCC 执行完毕。如果DBCC 输出了错误信息,请与系统管理员联系。 说明您的其他程序正在使用该数据库,如果刚才您在F步骤中使用SQL Server Enterprise Manager打开了iBusinessWork库的系统表,那么退出SQL Server Enterprise Manager就可以了。(关闭企业管理器,如果别的机器从网络访问数据库,也把网络关闭) 正确执行完成的提示应该类似于:

SQL SERVER数据库性能调整与优化

摘要:微软的sql server数据库系统,因其各种优点在软件系统市场上占有比较大的比例,但是数据库在使用过程中也会出现多种可以导致服务器运行速度变慢或降低数据访问效率的事件发生。文章从多个方面讲述了sql server数据库系统调整和优化策略,可以有效提高数据库的查询速度。 关键字:sql server;应用程序;b/s;数据复制 中图分类号:tp311 文献标识码:a 文章编号:1009-3044(2016)15-0012-02 基于微软的sql server数据库系统,是目前很多软件所使用的数据库,其功能强大,而且兼容性能较好,适用于大多数的软件开发系统。但是,任何一个数据库系统在操作较长一段时间后,都可能存在一定的性能问题,这个性能问题包括多个方面,主要涉及数据库的内存、操作系统、参数设置、操作应用程序及硬件等多个方面。因此,就像操作系统一样,在一个数据库系统运行一段时间后,对其进行优化对整个软件系统的正常运行起着非常重要的作用,可以有效促进软件系统的稳定性、可用性和高效性,节约系统开销,解决系统瓶颈。 1 性能调整与优化概述 性能调整是指的对系统的相关参数、应用程序、软硬件系统进行优化,从而可以有效改变系统性能的一种活动。对数据库系统的性能优化及调整主要包括对软硬件配置、操作系统及数据库管理系统的配置进行优化,还包括对访问这些配置的应用程序的分析与了解。 对数据库性能是否优秀的判定标准主要是看这个数据库各个性能指标,一个数据库的性能指标主要包含以下几个部分:事务处理所占用的系统资源、事件的响应时间以及cpu的时间量。性能并不是一成不变的,而是随着使用的时间和环境的变化而变化。数据库系统的性能受使用应用程序、本身的体系结构和硬件设备性能及连接数目及资源等多个方面的影响。 所谓性能调整,就是通过优化提高系统的高效性,消除系统使用瓶颈。一个系统是否高效,主要是看他的瓶颈,因为这个是系统性能限制的主要决定因素,可能是软件,也可能是硬件部分。如果系统的瓶颈限制过大,则对数据库系统的访问和存储及更新都有很大影响,减少系统瓶颈,可以将一个系统性能最大程度的发挥。为了有效去除系统瓶颈,对性能进行调整,必须采取一定的步骤和方法去调整所有和性能相关的组件,包括应用调整和sqlserver。 2 应用调整 对数据库的性能优化来说,最有可能导致数据库性能产生变化的就是应用软件的影响。应用调整相对于硬件来说更容易做到监控和修改,也更容易显示出效果来。应用的调整和优化也可以影响到数据系统的后续步骤的调整,有效地减小系统开支,使普通的应用程序不至于占用太多的系统资源。应用调整一般来说是对sql server性能调整的第一步,也是关键的一步,主要包括应用程序调整、页面应用调整、数据库查询语句调整等多个因素。 1)sql语句优化 数据库性能优化中,标准查询语句(sql)的优化可以有效提高数据查询、更新、插入的执行效率。低效率的数据库查询语句,往往会占用过多的资源并访问过多的数据库,从而使系统的响应时间变长,严重影响系统的性能。通过优化sql语句,改变数据库查询方法或途径,可以有效提高系统的性能。数据库系统的应用最多的就是将数据库的数据显示出来,这离不开数据库的查询语句,这也是影响系统性能最关键的一个步骤。微软的sql server本身提供了数据库的查询和优化方法,对常用的数据库查询语句进行分析,可以找到最佳的查询语句,从而可以减少输入/输出次数,提高执行效率。但是微软提供的查询优化器很难能够完全解决查询语句的优化,比如语义方面的问题等。 2)b/s 模式优化 目前很多软件的开发模式都采用了基于b/s的模式,在这种模式下,用户端无须在安装多余的软件,服务器将后台处理的数据通过协议传输到客户端。这种做法实际上减轻了前端

S Q L 数据库出现置疑怎么解决

SQL数据库置疑的解决方法 首先,在任何操作之前,必须要备份数据库(特别注意) 一、分离数据库 1、点击“程序》Microsoft SQL Server》企业管理》”,打开企业管理器 2、展开服务器组,然后展开服务器,选中要分离的数据库 3、点击鼠标右键“所有任务》分离数据库”,出现如下窗口 4、点击确定,该选定的数据库就被分离。 5.分离后,把原数据库里面.MDF(主数据文件).LDF(事务日志文件)这两个文件复制到目标盘下,例:D盘下 注意事项,只有“使用本数据库的连接”数为0时,该数据库才能分离。所以分离数据库时尽量断开所有对要分离数据库操作的连接,如果还有连接数据库的程序,会出现数据库的连接状态窗口,显示正在连接此数据库的机器以及名称,点击清除按钮将从服务器强制断开现有的连接。

二、附加数据库 1、在附加数据库之前,首先要移动数据库文件 在附加数据库之前,您必须将与数据库关联的 .MDF(主数据文件).LDF(事务日志文件)这两个文件复制到目标硬盘下,或是同一服务器的不同硬盘目录下。这两个文件一般位于C:\Program Files\Microsoft SQL Server\MSSQL\Data 目录下。 2、点击“程序》Microsoft SQL Server》企业管理》”,打开企业管理器 3、展开服务器组,然后展开服务器 4、右击"数据库",然后选择“所有任务》附加数据库”,弹出窗口 5、输入要附加的数据库的MDF名称。如果不确定文件位于何处,单击浏览("...")搜索。若要确保指定的 MDF 文件正确,请单击"验证"。在"附加为"框内,输入数据库的名称。数据库名称不能与任何现有数据库名称相同。指定数据库的所有者 6、单击"确定"按钮。新附加的数据库的数据库节点即创建在"数据库"文件夹中

数据库性能优化面试题 DBA们可以参考一下

数据库性能优化面试题DBA们可以参考 一下 问题:数据库性能优化面试题DBA们可以参考一下回答: 1:使用索引查询一定能提高查询的性能吗举出实例2:数据库设计的一、二、三范式、BCNF是什么3:StoreProcedure和Function有何区别4:如何跟踪某个session的SQL 5:如何使用CBO,CBO与RULE的区别6:描述tablespace和datafile之间的关系7:truncate和delete有何区别哪一种操作性能更快8:什么是Snapshot 与View有何区别9:pctused and pctfree 表示什么含义有什么作用10:cursor一般用在什么地方有何弱点管理篇1:SQL调整最关注的是什么2:Oracle的系统进程有哪些作用是什么3:本地管理表空间和字典管理表空间的特点,ASSM有什么特点4:备份如何分类5:如果一个表被drop,在有完善的归档和备份的情况下,如何恢复6:rman是什么,有何特点7:standby 的特点8:对于一个要求恢复时间比较短的系统(数据库50G,每天归档5G),你如何设计备份策略9:对于一个存在系统性能的系统,说出你的诊断处理思路10:列举几种诊断IO、CPU、性能状况的方法11:对statspack有何认识12:如果系统现在需要在一个很大的表上创建一个索引,你会考虑那些因素,如何做以尽量减小对应用的影响13:对raid10 和raid5有何认识14:SGA主要有那些部分,

主要作用是什么15:简单描述table / segment / extent / block 之间的关系16:说说你对索引的认识(索引的结构、对dml影响、对查询影响、为什么提高查询性能)

食通天SQL SERVER数据库置疑及修复

食通天SQL SERVER数据库置疑及修复 数据库置疑处理 提要:在数据库置疑或者修复的处理过程中,须先将文中的数据库更改为真实的数据库名称. 数据库置疑修复处理完成后,需执行第二步骤,使用DBCC语句对数据库进行检测并修复错误. 对于损坏的数据库,可参照数据库修复处理方法进行处理. 步骤1: 停止SQL服务管理器,将原数据文件拷贝出来进行备份,然后将原数据库删除,使用思迅数据库安装程序创建一个新的数据库。 步骤2: 停止SQL Server 服务管理器 步骤3: 用备份出来的老数据库的MDF文件替换新数据库相应的MDF文件,并把LDF文件删除。 步骤4: 重新启动SQL Server服务,然后运行如下命令: Use Master Go sp_configure 'allow updates', 1 reconfigure with override Go begin tran update sysdatabases set status = 32768 where name = 'hbfsv8' --Verify one row is updated before committing commit tran 步骤5:

停止SQL然后重新启动SQL Server服务,然后运行如下命令: DBCC TRACEON(3604) DBCC REBUILD_LOG('db_name','C:\ProgramFiles\Microsoft SQL Server\MSSQL\Data\hbfsv8_log.ldf') Go --注:此处的db_name一定要更换为需要修复的数据库名称,比如此实例中的hbfsv8 步骤6: 停止SQL然后重新启动SQL Server服务,然后运行: use master update sysdatabases set status = 8 where name = 'hbfsv8' Go sp_configure 'allow updates', 0 reconfigure with override Go 步骤7: 运行dbcc checkdb(hbfsv8) 检查数据库的完整性

用友软件数据库质疑处理办法

SQL Server数据库错误9003(LSN无效)的处理方法 国内一些ERP、财务软件一般后台都使用SQL Server的数据库,SQL Server 作为一个中大型数据库是不应该在桌面系统上运行的,小规模企业一般不使用专用服务器,大部分直接使用XP系统+桌面引擎MSDE作为SQL数据库的后台服务。这种方案当然就谈不上什么稳定性和可靠性了,最糟的是在死机、重启或意外掉电后数据库会出现打不开的现象,其中错误9003:LSN(xx:xx:x)无效是最常见的问题。 这种情况是数据库的日志文件(LDF)数据不同步造成的,可以根据数据库MDF文件重建日志文件修复。 以下是详细步骤,有颜色标注的部分应该按本机的实际名称进行修改。 假设损坏的数据库名称是MYDB_001,对应的数据库名称是MyDB_Data.MDF,日志文件是MyDB_Log.LDF,数据库所在文件夹为D:\MYDATA\; 1、先把损坏的数据库对应的文件MyDB_Data.MDF和MyDB_Log.LDF备份到 别的地方; 2、在SQL Server和企业管理器中创建一个与损坏数据库同名的数据库, 对应的数据库文件名称也是MyDB_Data.MDF和MyDB_Log.LDF; 3、停止SQL Server服务; 4、删除第2步新建数据库产生的MyDB_Log.LDF文件;

5、用损坏的数据库数据文件MyDB_Data.MDF覆盖第2步新建数据库产生的MyDB_Data.MDF文件 6、启动SQL Server服务; 7、进入企业管理器,刷新数据库状态,此时数据库MYDB_001状态为“置疑”; 8、在SQL Server服务器属性中设置SQL Server数据库服务器“允许对系统目录直接修改” 9、从SQL企业管理器的“工具”菜单启动“SQL 查询分析器”; 10、输入以下代码并运行使MYDB_001数据库进入紧急修复模式:

数据库访问慢的原因

1. 没有索引或者没有用到索引数据库索引就像书籍中目录一样,使用户在访问数据库数据时,不必遍历所有数据就可以找到需要的数据。创建索引后,可以保证每行数据的唯一性,极大地提高数据检索效率,这是一中牺牲空间换取性能的方法。没有索引或者没有用到索引是数据访问速度慢最常见的因素,也是程序设计的一个缺陷所在。 2. I/O吞吐量小,形成了瓶颈效应I/O吞吐量是影响数据访问速度的客观因素(硬件因素)。在一定的硬件环境下,利用优化的部署方案可适当提高I/O 吞吐量。 3. 没有创建计算列导致查询不优化计算列是一个比较特殊的列,不填写任何设计类型,用户不可以改变该列的值。计算列的值是通过一定的函数公式等以另一个或多个列的值为输入值计算出的结果。如果没相应的计算列,在一些数据查询的时候需要对已有数据进行计算,从而浪费一部分性能。 4. 内存不足对数据库数据的查询访问毫无疑问会占用大量的内存空间,当内存不足的情况下,数据的访问速度会受到明显的影响甚至访问出现超时情况,是影响数据访问速度的客观因素。 5. 网络速度慢网络速度慢是影响数据访问速度的客观因素。可通过提高网络访问的位宽来解决。 6. 查询出的数据量过大当查询出的数据量过大时,内存的占用、系统时间的占用等都影响数据访问的速度。可以采用多次查询、定位查询、和查询数据量控制来解决。 7. 锁或者死锁锁或者死锁在数据库数据访问时会造成访问者等待时间过程或者永久无法获取到资源。这是查询慢最常见的因素之一,是程序设计的缺陷,要尽量避免。 8. 返回不必要的行和列在一般的数据查询中,都尽可能多的获取数据信息,这样造成了不必要的数据遍历,大大的增加了数据访问的响应的时间。所以在一般的查询中,尽量查询少的行和列,将数据遍历时间降到最低以满足数据输出需求。 9. 查询语句不够优化在数据查询访问过程中,使用最频繁的是使用自定义的查询语句进行数据输出的。所以编写优化的查询语句能够很大程度上提高数据查询访问的速度。 性能优化数据库性能优化主要是提高数据访问的速度,即提高数据库响应速度的性能指标。性能优化主要分为主观因素和客观因素两部分的优化。这里主要针对影响性能的客观因素进行优化。

数据库被置疑后的解决方法

数据库被置疑后的解决方法 A.我们使用默认方式建立一个供恢复使用的数据库(如test)。可以在SQL Server Enterprise Manager 里面建立。 B.停掉数据库服务器。 C.将刚才生成的数据库的日志文件test_log.ldf删除,用要恢复的数据库mdf文件覆盖刚才生成的数据 库数据文件test.mdf。 D.启动数据库服务器。此时会看到数据库test的状态为"置疑"。这时候不能对此数据库进行任何*作。 E.设置数据库允许直接*作系统表。此*作可以在SQL Server Enterprise Manager里面选择数据库服 务器,按右键,选择"属性",在"服务器设置"页面中将"允许对系统目录直接修改"一项选中。也可以 使用如下语句来实现。 use master go sp_configure 'allow updates',1 go reconfigure with override go F.设置test为紧急修复模式 update sysdatabases set status=-32768 where dbid=DB_ID('test') 此时可以在SQL Server Enterprise Manager里面看到该数据库处于"只读\置疑\脱机\紧急模式"可以 看到数据库里面的表,但是仅仅有系统表 G.下面执行真正的恢复*作,重建数据库日志文件 dbcc rebuild_log('test','C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_log.ldf') 执行过程中,如果遇到下列提示信息: 服务器: 消息5030,级别16,状态1,行1 未能排它地锁定数据库以执行该*作。 DBCC 执行完毕。如果DBCC 输出了错误信息,请与系统管理员联系。 说明您的其他程序正在使用该数据库,如果刚才您在F步骤中使用SQL Server Enterprise Manager 打开了test库的系统表,那么退出SQL Server Enterprise Manager就可以了。 正确执行完成的提示应该类似于: 警告: 数据库'test' 的日志已重建。已失去事务的一致性。应运行DBCC CHECKDB 以验证物理一致 性。将必须重置数据库选项,并且可能需要删除多余的日志文件。 DBCC 执行完毕。如果DBCC 输出了错误信息,请与系统管理员联系。

金蝶SQL数据库置疑解决方法

解决由于sql2000日志文件引起的“置疑”。 日志有错误--------重新附加提示日志有错误。 日志文件丢失-----丢失了.ldf文件,只有.mdf文件的数据库重建。 步骤: 一、备份“置疑”数据库的数据文件,因为日志文件.ldf出错,可以只备份.mdf文件。 二、打开企业管理器(SQL Server Enterprise Manager),删除“置疑”数据库,如果提示删除错误,可以重启数据库服务器,然后再试。 三、在企业管理器中,新建同名数据库(假如数据库为test),注意建立的数据库名称,还有数据文件名要保持和原数据库一致。 四、停止数据库服务器。 五、将刚才新建数据库生成的数据库的日志文件test_log.ldf删除,用要恢复的数据库.mdf 文件覆盖刚才生成的数据库数据文件test_data.mdf。 六、启动数据库服务器。此时会看到数据库test的状态为“置疑”。这时候不能对此数据库进行任何操作。 七、设置数据库允许直接操作系统表。此操作可以在企业管理器 (SQL Server Enterprise Manager)里面选择数据库服务器,按右键,选择“属性”,在“服务器设置”页面中将“允许对系统目录直接修改”一项选中。也可以使用如下语句来实现。 use master go sp_configure 'allow updates',1 go reconfigure with override go 八、设置test为紧急修复模式。 update sysdatabases set status=-32768 where dbid=DB_ID('test') 此时可以在企业管理器(SQL Server Enterprise Manager)里面看到该数据库处于“只读\置疑\脱机\紧急模式”可以看到数据库里面的表,但是仅仅有系统表。 九、下面执行真正的恢复操作,用dbcc rebuild_log命令来重建数据库日志文件(重建路径根据你实际的数据库路径来)。

数据库设计的性能与效率

?所有SQL语句中,除了表名、字段名称以外,全部语句和函数均需大写,应当杜绝小写方式或大小写混杂的写法。例如select * from cdb_members;是不符合规范的写法。 ?很长的SQL语句应当有适当的断行,依据JOIN、FROM、ORDER BY等关键字进行界定。 ?通常情况下,在对多表进行操作时,要根据不同表名称,对每个表指定一个1~2个字母的缩写,以利于语句简洁和可读性。

?如下的语句范例,是符合规范的: $query = $db->query("SELECT s.*, m.* FROM {$tablepre}sessions s, {$tablepre}members m WHERE m.uid=s.uid AND s.sid='$sid'); 定长与变长表 包含任何varchar、text等变长字段的数据表,即为变长表,反之则为定长表。 ?对于变长表,由于记录大小不同,在其上进行许多删除和更改将会使表中的碎片更多。需要定期运行OPTIMIZE TABLE以保持性能。而定长表 就没有这个问题; ?如果表中有可变长的字段,将它们转换为定长字段能够改进性能,因为定长记录易于处理。但在试图这样做之前,应该考虑下列问题: ?使用定长列涉及某种折衷。它们更快,但占用的空间更多。char(n) 类型列的每个值总要占用n 个字节(即使空串也是如此),因为在表中存储时, 值的长度不够将在右边补空格; ?而varchar(n)类型的列所占空间较少,因为只给它们分配存储每个值所需要的空间,每个值再加一个字节用于记录其长度。因此,如果在char和 varchar类型之间进行选择,需要对时间与空间作出折衷; ?变长表到定长表的转换,不能只转换一个可变长字段,必须对它们全部进行转换。而且必须使用一个ALTER TABLE语句同时全部转换,否则转 换将不起作用; ?有时不能使用定长类型,即使想这样做也不行。例如对于比255字符更长的串,没有定长类型; ?在设计表结构时如果能够使用定长数据类型尽量用定长的,因为定长表的查询、检索、更新速度都很快。必要时可以把部分关键的、承担频繁 访问的表拆分,例如定长数据一个表,非定长数据一个表。例如Discuz! 的cdb_members和cdb_memberfields表、cdb_forums和 cdb_forumfields表等。因此规划数据结构时需要进行全局考虑; 进行表结构设计时,应当做到恰到好处,反复推敲,从而实现最优的数据存储体系。 运算与检索 ?数值运算一般比字符串运算更快。例如比较运算,可在单一运算中对数进行比较。而串运算涉及几个逐字节的比较,如果串更长的话,这种比 较还要多。 ?如果串列的值数目有限,应该利用普通整型或emum类型来获得数值运算的优越性。

相关文档
相关文档 最新文档