SqlServer数据库提示“tempdb”的日志已满问题如何解决

SqlServer数据库提示“tempdb”的日志已满问题如何解决

解决SQL数据库日志已满的问题

解决SQL数据库日志已满的问题 1、右键数据库→属性→选项→故障还原模型→设为简单→确定; 2、右键数据库→所有任务→收缩数据库→确定; 3、右键数据库→属性→选项→故障还原模型→设为大容量日志记录→确定。 二、复杂方法 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.分离 EXEC sp_detach_db @dbname = 'pubs' b.删除日志文件 c.再附加 EXEC sp_attach_single_file_db @dbname = 'pubs',@physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf' 5、为了以后能自动收缩,做如下设置 企业管理器--服务器--右键数据库--属性--选项--选择"自动收缩" --SQL语句设置方式: EXEC sp_dboption '数据库名', 'autoshrink', 'TRUE' 6、如果想以后不让它日志增长得太大 企业管理器--服务器--右键数据库--属性--事务日志 --将文件增长限制为xM(x是你允许的最大数据文件大小) --SQL语句的设置方式: alter database 数据库名modify file(name=逻辑文件名,maxsize=20)

SQLserver数据库课程设计范例

1 概述 1.1课题简介 书店书目书种繁多,来源多样,购买者众多,图书信息、供应商信息、客户信息、销售信息庞大,不易管理。因此,很有必要创建一个小型书店管理系统,以便于书店对图书的管理。1.2设计目的 应用对数据库系统原理的理论学习,通过上机实践的方式将理论知识与实践更好的结合起来,巩固所学知识。 数据库应用课程实践:实践和巩固在课堂教学中学习有关知识,熟练掌握对于给定结构的数据库的创建、基本操作、程序系统的建立和调试以及系统评价。 数据库原理软件设计实践:实践和巩固在课堂教学中学习的关于关系数据库原理的有关知识和数据库系统的建立方法,熟练掌握对于给定实际问题,为了建立一个关系数据库信息管理系统,必须得经过系统调研、需求分析、概念设计、逻辑设计、物理设计、系统调试、维护以及系统评价的一般过程,为毕业设计打下基础。 1.3设计内容 运用基于E-R 模型的数据库设计方法和关系规范化理论做指导完成从系统的分析到设计直至系统的最终实现,开发小型书店管理系统,完成小型书店管理系统的全部功能。 首先做好需求分析,并完成数据流图和数据字典。 其次做概念分析,利用实体联系的方法将需求分析的用户需求抽象为信息结构,得到E-R 图。然后就是逻辑结构设计,将E-R 图转换为计算机系统所支持的逻辑模型 2 需求分析 2.1功能分析 首先,建立一些基本表(尽可能满足3N),对大部分基本信息组合、存储;其次通过建立视图实现对冗余数据的有必要保留(查询并计算基本表属性得到新的作为视图属性)并实现对以下基本信息的显示。 图书信息:图书名称、订购数量、订购时间、订购单价、金额、出版社名称、作者名称;供应商名称等; 供应商信息:供应商名称、地址、电话,联系人; 客户信息:客户编号、名称、年龄、性别、累计购书金额等; 销售信息:时间、销售名称、数量、销售单价、客户编号、客户名称、金额等。 在此基础上进行以下目标查询,由于有些查询常用且较复杂,为了简化其应用,所以将它们定义

sql server日志文件总结及日志满的处理办法

sql server日志文件总结及日志满的处理办法 交易日志(Transaction logs)是数据库结构中非常重要但又经常被忽略的部分。由于它并不像数据库中的schema那样活跃,因此很少有人关注交易日志。交易日志是针对数据库改变所做的记录,它可以记录针对数据库的任何操作,并将记录结果保存在独立的文件中。对于任何每一个交易过程,交易日志都有非常全面的记录,根据这些记录可以将数据文件恢复成交易前的状态。从交易动作开始,交易日志就处于记录状态,交易过程中对数据库的任何操作都在记录范围,直到用户点击提交或后退后才结束记录。每个数据库都拥有至少一个交易日志以及一个数据文件。 出于性能上的考虑,SQL Server将用户的改动存入缓存中,这些改变会立即写入交易日志,但不会立即写入数据文件。交易日志会通过一个标记点来确定某个交易是否已将缓存中的数据写入数据文件。当SQL Server重启后,它会查看日志中最新的标记点,并将这个标记点后面的交易记录抹去,因为这些交易记录并没有真正的将缓存中的数据写入数据文件。这可以防止那些中断的交易修改数据文件。 维护交易日志 因为很多人经常遗忘交易日志,因此它也会给系统带来一些问题。随着系统的不断运行,日志记录的内容会越来越多,日志文件的体积也会越来越大,最终导致可用磁盘空间不足。除非日常工作中经常对日志进行清理,否则日志文件最终会侵占分区内的全部可用空间。日志的默认配置为不限容量,如果以这种配置工作,它就会不断膨胀,最终也会占据全部可用空间。这两种情况都会导致数据库停止工作。 对交易日志的日常备份工作可以有效的防止日志文件过分消耗磁盘空间。备份过程会将日志中不再需要的部分截除。截除的方法是首先把旧记录标记为非活动状态,然后将新日志覆盖到旧日志的位置上,这样就可以防止交易日志的体积不断膨胀。如果无法对日志进行经常性的备份工作,最好将数据库设置为"简单恢复模式"。在这种模式下,系统会强制交易日志在每次记录标记点时,自动进行截除操作,以新日志覆盖旧日志。 截除过程发生在备份或将旧标记点标为非活动状态时,它使得旧的交易记录可以被覆盖,但这并不会减少交易日志实际占用的磁盘空间。就算不再使用日志,它依然会占据一定的空间。因此在维护时,还需要对交易日志进行压缩。压缩交易日志的方法是删除非活动记录,从而减少日志文件所占用的物理硬盘空间。 通过使用DBCC SHRINKDATABASE语句可以压缩当前数据库的交易日志文件,DBCC SHRINKFILE语句用来压缩指定的交易日志文件,另外也可以在数据库中激活自动压缩操作。当压缩日志时,首先会将旧记录标记为非活动状态,然后将带有非活动标记的记录彻底删除。根据所使用的压缩方式的不同,你可能不会立即看到结果。在理想情况下,压缩工作应该选在系统不是非常繁忙的时段进行,否则有可能影响数据库性能。 恢复数据库 交易记录备份可以用来将数据库恢复到某一指定状态,但交易记录备份本身不足以完成恢复数据库的任务,还需要备份的数据文件参与恢复工作。恢复数据库时,首先进行的是数据文件的恢复工作。在整个数据文件恢复完成前,不要将其设为完成状态,否则交易日志就不会被恢复。当数据文件恢复完成,系统会通过交易日志的备份将数据库恢复成用户希望的

DB2_数据库日志管理

1、load 方法装入数据: export to tempfile of del select * from tablename where not 清理条件; load from tempfile of del modified by delprioritychar replace into tablename nonrecoverable; 说明: 在不相关的数据表export数据时,可以采取并发的形式,以提高效率; tablename指待清理table的名称; modified by delprioritychar防止数据库记录中存在换行符,导致数据无法装入的情况; replace into对现数据库中的内容进行替换,即将现行的数据记录清理,替换为数据文件内容; nonrecoverable无日志方式装入; 2、查找当前的应用: db2 list application grep btpdbs; 3、删除当前正在使用的application: db2 "force application (id1,id2,id3)" id1,id2,id3 是list显示的应用号; 4、查看当前应用号的执行状态: db2 get snapshot for application agentid 299 grep row 5、查看数据库参数: db2 get db cfg for //当前数据库可以省略 6、修改数据库的log数据: db2 update db cfg using <参数名> <参数值> 7、db2stop force的用法: 在进行bind的时候出现如下错误: sql0082can error has occurred which has terminated processing. sql0092nno package was created because of previous errors. sql0091nbinding was ended with "3" errors and "0" warnings. 主要是表文件被加锁,不能继续使用; 在进行stop的时候报错:db2stop 8/03/2005 21:46:530 0 sql1025nthe database manager was not stopped because databases are still active.

SQLServer――数据库设计技巧.

数据库的设计学问很大,就连小小的表设计就要遵守3大范式(其实不只3大范式,所以为了以后维护方便,我们不得不将设计进行到底!下面五点设计数据库的技巧介绍给大家: 1.文档 对所有的快捷方式、命名规范、限制和函数都要编制文档。 采用给表、列、触发器等加注释的数据库工具。是的,这有点费事,但从长远来看,这样做对开发、支持和跟踪修改非常有用。取决于你使用的数据库系统,可能有一些软件会给你一些供你很快上手的文档。你可能希望先开始在说,然后获得越来越多的细节。或者你可能希望周期性的预排,在输入新数据同时随着你的进展对每一部分细节化。不管你选择哪种方式,总要对你的数据库文档化,或者在数据库自身的内部或者单独建立文档。这样,当你过了一年多时间后再回过头来做第2 个版本,你犯错的机会将大大减少。 2. 使用常用英语(或者其他任何语言而不要使用编码 为什么我们经常采用编码(比如9935A 可能是墨水笔的供应代码,4XF788-Q 可能是帐目编码?理由很多。但是用户通常都用英语进行思考而不是编码。工作5 年的会计或许知道4XF788-Q 是什么东西,但新来的可就不一定了。在创建下拉菜单、列表、报表时最好按照英语名排序。假如你需要编码,那你可以在编码旁附上用户知道的英语。 3. 保存常用信息 让一个表专门存放一般数据库信息非常有用。我常在这个表里存放数据库当前版本、最近检查/修复(对Access、关联设计文档的名称、客户等信息。这样可以实现一种简单机制跟踪数据库,当客户抱怨他们的数据库没有达到希望的要求而与你联系时,这样做对非客户机/服务器环境特别有用。 4. 测试、测试、反复测试

建立或者修订数据库之后,必须用用户新输入的数据测试数据字段。最重要的是,让用户进行测试并且同用户一道保证你选择的数据类型满足商业要求。测试需要在把新数据库投入实际服务之前完成。 5. 检查设计 在开发期间检查数据库设计的常用技术是通过其所支持的应用程序原型检查数据库。换句话说,针对每一种最终表达数据的原型应用,保证你检查了数据模型并且查看如何取出数据。

大数据库优化(SQLServer)

SQL SERVER性能优化综述 近期因工作需要,希望比较全面的总结下SQL SERVER数据库性能优化相关的注意事项,在 网上搜索了一下,发现很多文章,有的都列出了上百条,但是仔细看发现,有很多似是而非或 者过时(可能对SQL SERVER6.5以前的版本或者ORACLE是适用的)的信息,只好自己根据以 前的经验和测试结果进行总结了。 我始终认为,一个系统的性能的提高,不单单是试运行或者维护阶段的性能调优的任务,也不单单是开发阶段的事情,而是在整个软件生命周期都需要注意,进行有效工作才能达到的。所以我希望按照软件生命周期的不同阶段来总结数据库性能优化相关的注意事项。 一、分析阶段 一般来说,在系统分析阶段往往有太多需要关注的地方,系统各种功能性、可用性、可靠性、安全性需求往往吸引了我们大部分的注意力,但是,我们必须注意,性能是很重要的非功能 性需求,必须根据系统的特点确定其实时性需求、响应时间的需求、硬件的配置等。最好能 有各种需求的量化的指标。 另一方面,在分析阶段应该根据各种需求区分出系统的类型,大的方面,区分是OLTP(联机事务处理系统)和OLAP(联机分析处理系统)。 二、设计阶段 设计阶段可以说是以后系统性能的关键阶段,在这个阶段,有一个关系到以后几乎所有性能 调优的过程—数据库设计。 在数据库设计完成后,可以进行初步的索引设计,好的索引设计可以指导编码阶段写出高效 率的代码,为整个系统的性能打下良好的基础。 以下是性能要求设计阶段需要注意的: 1、数据库逻辑设计的规范化 数据库逻辑设计的规范化就是我们一般所说的范式,我们可以这样来简单理解范式: 第1规范:没有重复的组或多值的列,这是数据库设计的最低要求。 第2规范: 每个非关键字段必须依赖于主关键字,不能依赖于一个组合式主关键字的某些组 成部分。消除部分依赖,大部分情况下,数据库设计都应该达到第二范式。 第3规范: 一个非关键字段不能依赖于另一个非关键字段。消除传递依赖,达到第三范式应该是系统中大部分表的要求,除非一些特殊作用的表。 更高的范式要求这里就不再作介绍了,个人认为,如果全部达到第二范式,大部分达到第三

K3数据库日志文件过大分析及解决方案V2.0

K/3数据库日志文件过大分析及解决方案 本期概述 ●本文档适用于金蝶k/3(使用SQL Server 2000、SQL Server 2005作为数据库)。 ●本文档主要阐述了,在K3备份过程中,遇到:”日志文件过 大,系统无法完成备份”的问题分析及解决方案。通过对本文档的学习,能够掌握这种问题产生的原因以及解决方法。 版本信息 ●2009年6月10日V11.0 编写人:周素帆 ●2009年6月日V11.0 修改人:

版权信息 本文件使用须知 著作权人保留本文件的内容的解释权,并且仅将本文件内容提供给阁下个人使用。对于内容中所含的版权和其他所有权声明,您应予以尊重并在其副本中予以保留。您不得以任何方式修改、复制、公开展示、公布或分发这些内容或者以其他方式把它们用于任何公开或商业目的。任何未经授权的使用都可能构成对版权、商标和其他法律权利的侵犯。如果您不接受或违反上述约定,您使用本文件的授权将自动终止,同时您应立即销毁任何已下载或打印好的本文件内容。 著作权人对本文件内容可用性不附加任何形式的保证,也不保证本文件内容的绝对准确性和绝对完整性。本文件中介绍的产品、技术、方案和配置等仅供您参考,且它们可能会随时变更,恕不另行通知。本文件中的内容也可能已经过期,著作权人不承诺更新它们。如需得到最新的技术信息和服务,您可向当地的金蝶业务联系人和合作伙伴进行咨询。 著作权声明著作权所有2009 金蝶软件(中国)有限公司。

所有权利均予保留。

目录 第一章报错现象及分析 (5) 一、报错现象 (5) 二、问题分析 (6) 三、关于日志文件 (6) 第二章解决方案 (8) 一、SQL 2000 (8) 1、执行数据库分离附加 (8) 2、数据库收缩操作 (18) 二、SQL 2005 (24) 1、分离附加数据库 (24) 2、收缩数据库 (27)

几种清除MSSQL日志方法

方法一、 1 / 4

2 / 4 方法二、

MS SQL清除日志的命令 如何清除sql server 日志? 设置数据库为简单模式,自动收缩 1.打开查询分析器,输入命令 backup log databasename with no_log 2.再打开企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M 数,直接输入这个数,确定就可以了。 dbcc shrinkfile (databasename_log,truncateonly) 方法三、 1: 删除LOG 第1步:分离数据库企业管理器->服务器->数据库->右键->分离数据库 第2步:删除LOG文件 第3布:附加数据库企业管理器->服务器->数据库->右键->附加数据库 此法生成新的LOG,大小只有500多K 再将此数据库设置自动收缩 方法四、 EXEC sp_detach_db @dbname = 'pubs' EXEC sp_attach_single_file_db @dbname = 'pubs', @physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf' 方法五、 Use Database_Name Backup Log Database_Name With No_log dbcc shrinkfile (Database_Name_Log,truncateonly) Go 方法六、 直接在查询分析那里执行backup log databasename with no_log 然后回到企业管理器把数据库收缩一下(可能需另外设置属性) 3 / 4

SQLserver数据库专业课程设计范例

SQLserver数据库专业课程设计范例

1 概述 书店书目书种繁多,来源多样,购买者众多,图书信息、供应商信息、客户信息、销售信息庞大,不易管理。因此,很有必要创建一个小型书店管理系统,以便于书店对图书的管理。 应用对数据库系统原理的理论学习,通过上机实践的方式将理论知识与实践更好的结合起来,巩固所学知识。 数据库应用课程实践:实践和巩固在课堂教学中学习有关知识,熟练掌握对于给定结构的数据库的创建、基本操作、程序系统的建立和调试以及系统评价。 数据库原理软件设计实践:实践和巩固在课堂教学中学习的关于关系数据库原理的有关知识和数据库系统的建立方法,熟练掌握对于给定实际问题,为了建立一个关系数据库信息管理系统,必须得经过系统调研、需求分析、概念设

计、逻辑设计、物理设计、系统调试、维护以及系统评价的一般过程,为毕业设计打下基础。 运用基于E-R 模型的数据库设计方法和关系规范化理论做指导完成从系统的分析到设计直至系统的最终实现,开发小型书店管理系统,完成小型书店管理系统的全部功能。 首先做好需求分析,并完成数据流图和数据字典。 其次做概念分析,利用实体联系的方法将需求分析的用户需求抽象为信息结构,得到E-R 图。 然后就是逻辑结构设计,将E-R 图转换为计算机系统所支持的逻辑模型 2 需求分析 首先,建立一些基本表(尽可能满足3N),

对大部分基本信息组合、存储;其次通过建立视图实现对冗余数据的有必要保留(查询并计算基本表属性得到新的作为视图属性)并实现对以下基本信息的显示。 图书信息:图书名称、订购数量、订购时间、订购单价、金额、出版社名称、作者名称;供应商名称等; 供应商信息:供应商名称、地址、电话,联系人;客户信息:客户编号、名称、年龄、性别、累计购书金额等; 销售信息:时间、销售名称、数量、销售单价、客户编号、客户名称、金额等。 在此基础上进行以下目标查询,由于有些查询常用且较复杂,为了简化其应用,所以将它们定义为存储过程。 查询当月书店销售金额、营业金额;(存储过程)查询某种图书库存数量;(存储过程) 查询当月销量最好的图书信息;(存储过程) 按供应商名称查询订购信息;(普通查询) 查询购买次数超过3次的客户信息。(普通查询)接着根据需要建立触发器、存储过程、索引,实现对数据库的优化。最后,进行过程功能的验

浅谈优化SQLServer数据库服务器内存配置的策略

浅谈优化SQLServer数据库服务器内存配置的策略 浅谈优化SQLServer数据库服务器内存配置的策略 作者:季广胜 言 农业银行总行1998年以来正式推广了新版网络版综合业务统计信息系统,该系统是基于WindowsNT4.0平台,采用客户/服务器模式,以Microsoft SQL Server为基础建立起来的大型数据库应用程序,系统界面友好、操作简便,计算、分析、检索功能非常强大,为保证农业银行系统及时进行纵向和横向业务数据采集、按照不同要求生成统计报表,进行全面业务活动分析提供了强有力的保障。但在这套程序的推广、维护中笔者发现系统有时运行速度较慢,特别是在Win95客户端操作时尤为严重,经过排除网线连接等硬件可能带来的影响后上述问题仍然存在。笔者经过仔细摸索,发现系统对硬、软件的要求较高,为充分发挥设计效能,达到最佳运作效果,需要对计算机硬、软件系统进行较为完备的性能测试与最佳配置,特别是内存配置的好坏对系统的运行速度具有决定性的作用。下面,笔者就如何优化SQLServer数据库服务器的内存配置提出一些认识和看法。 一、有关内存的基本概念 1 物理内存与虚拟内存 WindowsNT使用两类内存:物理内存与虚拟内存。

物理内存:作为RAM芯片安装在计算机内部的存储器。 虚拟内存:用于模拟RAM芯片功能的磁盘(硬盘)空间,其实质是通过将内存中当前没有使用的部分内容临时存储到磁盘上,使系统可以使用到比机器物理内存更多的内存。 2 分页和分页文件 WindowsNT系统通过使用磁盘空间使得对内存的需求得到部分缓解,从而使用到比物理内存更多内存的技术就称为“交换”或分页,也就是通常所说的虚拟内存技术。通常Windows NT 4.0系统安装时将在引导驱动器上设置一个大小为16MB的交换(分页)文件(pagefile.sys)。 二、优化Windows NT 4.0系统内存配置 在大多数情况下,为了充分发挥Windows NT 4.0系统效能,内存的作用比起处理器的处理能力更具有影响力,特别是在客户/服务器模式环境下更是如此,因为通常在这种环境下并不十分强调处理器的能力,相反却十分注重是否采用足够的内存来满足各个客户的应用需要。此外,为了获得容错功能和保护应用程序,保证应用程序高速运行、充分发挥设计功能都需要有足够多的内存,特别是工业绘图设计和各种工程应用程序更需要占用大量的内存来进行复杂的计算。 物理内存(RAM)方便快速的优点显而易见,但由于其价格昂贵,也就不可能做到多多益善了,因此通过合理优化内存配置、扩充虚拟

sqlserver日志已满处理方法

sql server日志已满处理方法 sql server日志已满处理方法学习2009-07-2615:42:33阅读323评论0字号:大中小 SQL数据库日志文件太大,或者使用软件时提示日志已满的处理方法. sql出现这种题提示,有二种情况,一你的电脑存放数据库文件的盘符不是NTFS格式的,而是别的格式,如FAT32只支持一个文件最大4G,所以超过4G就没有办法再写文件,sql 就会提示日志文件已满. 另外就是NTFS格式的,前台见一个卖服装的朋友店里数据库主文件只有100多M,而日志文件却有40G,幸亏是他的硬盘空间多,不然软件早不能用了 .估计软件数据库设计的有问题.后来给他重新建了一个日志收银速度明显加快. 一 --在SQL查询分析器执行 --按下边的步骤一步一步的做 --删除日志前要先对以前的数据库进行备份(这一步必须做,已免数据出现丢失) --1、使数据库脱机 use master exec sp_Detach_db test,true --2、把对应的.ldf文件删除或改名 --需手工做自己手工删除数据库文件的所在目录下的.ldf文件 --3、加载数据文件 exec sp_attach_single_file_db test,'D:\Program Files\Microsoft SQL Server\MSSQL\Data\test_Data.MDF' --4设置日志文件的增长方式

alter database test set recovery simple 二 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.为了最大化的缩小日志文件(如果是sql7.0,这步只能在查询分析器中进行) a.分离数据库: 企业管理器--服务器--数据库--右键--分离数据库 b.在我的电脑中删除LOG文件 c.附加数据库: 企业管理器--服务器--数据库--右键--附加数据库

如何降低SQL Server 2005内存使用量与设置

如何降低SQL Server 2005内存使用量与设置 我的数据库服务器内存为8G,现在资源管理器显示内存用到5G,可以肯定是sql server数据库吃内存原因。 MSSQL占用了太多的内存,而且还不断的增长;或者说已经设置了使用内存,可是它没有用到那么多,这是怎么一回事儿呢? MSSQL是怎样使用内存的: 最大的开销一般是用于数据缓存,如果内存足够,它会把用过的数据和觉得你会用到的数据统统扔到内存中,直到内存不足的时候,才把命中率低的数据给清掉。所以一般我们在看statistics io的时候,看到的physics read都是0。 其次就是查询的开销,一般地说,hash join是会带来比较大的内存开销的,而merge join 和nested loop的开销比较小,还有排序和中间表、游标也是会有比较大的开销的。 所以用于关联和排序的列上一般需要有索引。 再其次就是对执行计划、系统数据的存储,这些都是比较小的。 我们先来看数据缓存对性能的影响,如果系统中没有其它应用程序来争夺内存,数据缓存一般是越多越好,甚至有些时候我们会强行把一些数据pin在高速缓存中。但是如果有其它应用程序,虽然在需要的时候MSSQL会释放内存,但是线程切换、IO等待这些工作也是需要时间的,所以就会造成性能的降低。 方法:可以考虑增加内存,优化数据库和代码,设置MSSQL的最大内存使用等等。 max server memory 和min server memory,如何设置(2种) 1.通过SSMS界面中的服务器属性可以设置 2. --通过sp_configure设置 EXEC sp_configureN'min server memory (MB)',N'替换最小值' GO RECONFIGURE GO EXEC sp_configureN'max server memory (MB)',N'替换最大值' GO RECONFIGURE GO 如果没有其它应用程序,那么就不要限制MSSQL对内存的使用。 然后来看查询的开销,这个开销显然是越低越好,因为我们不能从中得到好处,相反,使用了越多的内存多半意味着查询速度的降低。所以我们一般要避免中间表和游标的使用,在经常作关联和排序的列上建立索引。 除了限制SQL使用内存之外,还可以优化数据库设计, 比如没有必要用char(100)的地方,就用varchar, 没有必要用int的地方就用smallint, tinyint, 没有必要用双字节nvarchar的地方,就用varchar, 这些都能有效减少读入内存的数据。 但如果有很多历史数据的话,很多人都不会去做的。 或者就是优化SQL代码。

DB2报“数据库日志已满”问题解决

DB2报“数据库日志已满”问题解决 用控制中心直接改会比较容易一点,在数据库名称上点右键-->配置-->日志-->日志文件大小、主日志文件数、辅助日志文件数改大一点。 也可用命令行db2cmd db2 update db cfg for mymakro using LOGFILSIZ 512 --日志文件大小 db2 update db cfg for mymakro using LOGPRIMARY 20 --主日志 db2 update db cfg for mymakro using LOGSECOND5 10 --辅助日志 要将与此数据库的所有连接断开后才会生效。 执行批处理时,DB2 报数据库的事务日志已满的错误,解决办法 辅助日志文件的数目(LOGSECOND) = 25 已更改的至日志文件的路径(NEWLOGPATH) = 日志文件路径= D:\DB2\NODE0000\SQL00 003\SQLOGDIR\ 溢出日志路径(OVERFLOWLOGPATH) = 镜像日志路径(MIRRORLOGPATH) = 首个活动日志文件= S0000005.LOG 磁盘上已满的块日志(BLK_LOG_DSK_FUL) = NO 事务使用的最大活动日志空间的百分比(MAX_LOG) = 0 1 个活动UOW 的活动日志文件的数目(NUM_LOG_SPAN) = 0 组落实计数(MINCOMMIT) = 1 软检查点前回收的日志文件的百分比(SOFTMAX) = 100 启用的恢复的日志保留(LOGRETAIN) = RECOVERY 启用的日志记录的用户出口(USEREXIT) = OFF HADR 数据库角色= STANDARD HADR 本地主机名(HADR_LOCAL_HOST) = HADR 本地服务名称(HADR_LOCAL_SVC) = HADR 远程主机名(HADR_REMOTE_HOST) = HADR 远程服务名称(HADR_REMOTE_SVC) =

清除数据库日志

清除数据库日志方法 方法一、(注意,此方法必须数据库文件所在的磁盘分区剩余空间足够,不少于1.5G,,如没有达到此项要求,请使用第二种方法) 1.断开后台服务器的网络连接(最好是晚上歇业后)退出系统 2.打开SQL的企业管理器(开始程序Microsoft SQL Server 企业管理器) 3.选中当前所使用的数据库(假设数据库名为kmjxc_pro)右键所有任务,分离数据库,将 数据库分离如下图 步骤一: 步骤二

1.进入SQL数据库安装目录(假设安装在D盘)D:\Program Files\Microsoft SQL Server\MSSQL\Data,找到两个文件kmjxc_pro_Data.MDF和kmjxc_pro_Log.LDF,将kmjxc_pro_Log.LDF改为1kmjxc_pro_Log.LDF,kmjxc_pro_Data.MDF不动 2.附加数据如图示,选中D:\Program Files\Microsoft SQL Server\MSSQL\Data中的kmjxc_pro_Data.MDF 步骤三:

步骤五: 点确定后,系统将提示数据附加成功附加数据成功后,日志文件将被缩减有问题打电话

1. 打开SQL 的查询分析器,选择一个带机器名的服务名 2. 输入安装时的超级管理员密码,点“确定”进入查询分析器主界面 3. 在编辑窗口中输入如下语句 use master dump tran kmjxc with no_log DBCC SHRINKDATABASE (kmjxc, 10) go use kmjxc dump tran master with no_log go 选择带机器名的服务名

SQLSERVER数据库、表的创建及SQL语句命令

SQLSERVER数据库、表的创建及SQL语句命令 SQLSERVER数据库,安装、备份、还原等问题: 一、存在已安装了sql server 2000,或2005等数据库,再次安装2008,会出现的问题 1、卸载原来的sql server 2000、2005,然后再安装sql server 2008,否则经常sql server服务启动不了 2、sql server服务启动失败,解决方法: 进入sql server configure manager,点开Sql server 网络配置(非sql native client 配置),点sqlzhh(我sqlserver 的名字)协议,将VIA协议禁用。再启动Sql Server服务,成功 如图: 二、在第一次安装SQLSERVER2008结束后,查看安装过程明细,描述中有较多项插件或程度,显示安装失败。 解决方法:

1、重新启动安装程度setup.exe,选择进行修复安装,至完成即可。 三、先创建数据库XXX,再进行还原数据库时,选择好备份文件XXX.bak,确定后进行还原,会报如下图的错误。 解决方法: 选择好备份数据库文件后,再进入“选项”中,勾选“覆盖现在数据库”即可。

四、查看数据库版本的命令:select @@version 在数据库中,点击“新建查询”,然后输入命令,执行结果如下 五、数据库定义及操作命令: 按照数据结构来组织、存储和管理数据的仓库。由表、关系以及操作对象组成,把数据存放在数据表中。 1、修改数据库密码的命令: EXEC sp_password NULL, '你的新密码', 'sa' sp_password Null,'sa','sa'

SQL Server使用2G以上内存设置方法

SQL Server使用2G以上内存设置方法 摘要 在32位的Windows 2003 Server中,进程内存被限制为2GB,而目前数据库服务器基本上都配置有4G内存甚至更多,因此如何有效利用多出的内存,是数据库服务器性能优化的重要部分。本文简要介绍了PAE和AWE的原理以及配置方法,使得32位的环境下可以突破2G这一瓶颈,从而提升数据库服务器的效率。 1.AWE简介 目前随着硬件成本的降低,一般的服务器具有4G以上的内存。可能很多人认为,如果使用Winows 2003 Server系统,最高可以支持4G内存。其实这么说并不准确,应该说32位机支持2^32=4G 的寻址空间,但实际上默认应用程序只能占用其中的2G内存,这一限制是32位操作系统架构引起的。传统意义上的32bit操作系统使用32bit的内存地址,这样寻址范围就已经被限制为4GB——4G也就是2的32次方,然而通常操作系统的设计上为了安全性的考虑,应用程序和内核所处的内存地址空间是互相独立的,也就是说,应用程序和内核各自能访问2GB的内存空间。虽然不同的操作系统实现具有不同的值,不过多数现在的操作系统在这一点上都很一致。 为了让程序突破2GB寻址的限制,近代Windows NT核心提供了一个变通的方案:4GB内存调整优化技术,通过这个技术,可以将用户模式的寻址空间扩大至3GB,这样核心寻址空间便被限制为1GB了,需要超大内存容量的应用程序可以从这个特性中获得性能改善,如SQL Server数据库这种类型。要使用这个4GB内存优化技术,用户需要在Windows Server操作系统的启动参数中加入/3GB 开关。 然而让用户模式程序能多寻址1GB毕竟还算是治标不治本,于是Microsoft 还在自己的操作系统中通过PAE 提高IA32 处理器处理大于 4 GB 的物理内存的能力。下列操作系统可以通过PAE 来利用大于 4 GB 的物理内存: Microsoft Windows 2000 Advanced Server

数据库日志满的删除方法

解决SQL数据库日志已满的问题 2009年03月21日星期六上午 11:53 一、简单方法 1、右键数据库→属性→选项→故障还原模型→设为简单→确定; 2、右键数据库→所有任务→收缩数据库→确定; 3、右键数据库→属性→选项→故障还原模型→设为大容量日志记录→确定。 二、复杂方法 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.分离 EXEC sp_detach_db @dbname = 'pubs' b.删除日志文件 c.再附加 EXEC sp_attach_single_file_db @dbname = 'pubs',@physname = 'c:\Program Files\Microsoft SQL

SQLserver数据库设计餐饮管理系统

辽宁工业大学 《SQL server数据库设计实训》报告题目:餐饮管理系统 院(系): 软件学院 专业班级:电子商务(国际) 学号: 学生姓名: 指导教师:翟宝峰 教师职称:副教授 起止时间:2011.09.03-2011.09.14

设计任务及评语

目录 第1章设计目的与要求 (1) 1.1设计目的 (1) 1.2设计环境 (1) 1.3主要参考资料 (1) 1.4设计内容及要求 (1) 第2章设计内容 (2) 2.1数据库设计 (2) 2.1.1需求分析 (2) 2.1.2概念设计 (5) 2.1.3逻辑设计 (6) 2.1.4物理设计 (7) 2.1.5 数据库实现 (7) 2.2程序设计 (11) 2.2.1概要设计 (11) 2.2.2程序实现 (11) 第3章设计总结 (14) 参考文献 (15)

第1章设计目的与要求 1.1设计目的 本设计专题是软件工程类专业的有关管理信息系统设计开发的一个重要环节,是本专业学生必须学习和掌握的综合实践课程。 本实践课的主要目的是:(1)、掌握运用管理系统及数据库原理知识进行系统分析和设计的方法;(2)掌握关系数据库的设计方法;(3)掌握SQL Server 2000技术应用;(4)掌握简单的数据库应用程序编写方法;(5)理解C/S模式结构。 1.2设计环境 硬件:处理器,Intel Pentium 166 MHz以上,内存:512M 以上,硬盘空间:8G 以上 软件:Windows XP需要软件:Microsoft Visual Basic 6.0,Microsoft SQL Server 2000 1.3主要参考资料 1.《管理信息系统》黄梯云高等教育出版社 2.《数据库系统概论》萨师煊高等教育出版社 3.《SQL Server 2000 数据库应用系统开发技术》朱如龙编,机械工业出版社。 4.《SQL Server 2000 数据库应用系统开发技术实验指导》朱如龙编,机械工业出版社 1.4设计内容及要求 一、内容 1.要求根据管理信息系统及数据库设计原理,按照数据库系统设计的步骤和规范, 完成各阶段的设计内容。 2.需求分析具体实际,数据流图、数据字典、关系模型要正确规范 3.在sql server2000 上实现设计的数据库模型。 4.对应用程序进行概要设计。 5.用VB实现简单的应用程序编写。 二、要求 设计过程中,要严格遵守课程设计的时间安排,听从指导教师的指导。正确地完成上述内容,规范完整地撰写出课程设计报告。

SQL SERVER 日志已满的处理方法

SQL SERVER 日志已满的处理方法(转) 事务日志文件Transaction Log File是用来记录数据库更新情况的文件,扩展名为ldf。在SQL Server 7.0 和SQL Server 2000 中,如果设置了自动增长功能,事务日志文件将会自动扩展。 一般情况下,在能够容纳两次事务日志截断之间发生的最大数量的事务时,事务日志的大小是稳定的,事务日志截断由检查点或者事务日志备份触发。 然而,在某些情况下,事务日志可能会变得非常大,以致用尽空间或变满。通常,在事务日志文件占尽可用磁盘空间且不能再扩展时,您将收到如下错误消息: Error:9002, Severity:17, State:2 The log file for database ?%.*ls? is full. 除了出现此错误消息之外,SQL Server 还可能因为缺少事务日志扩展空间而将数据库标记为SUSPECT。有关如何从此情形中恢复的其他信息,请参见SQL Server 联机帮助中的“磁盘空间不足”主题。 另外,事务日志扩展可能导致下列情形: ·非常大的事务日志文件。 ·事务可能会失败并可能开始回滚。 ·事务可能会用很长时间才能完成。 ·可能发生性能问题。 ·可能发生阻塞现象。 原因 事务日志扩展可能由于以下原因或情形而发生: ·未提交的事务 ·非常大的事务 ·操作:DBCC DBREINDEX 和CREATE INDEX ·在从事务日志备份还原时 ·客户端应用程序不处理所有结果 ·查询在事务日志完成扩展之前超时,您收到假的“Log Full”错误消息 ·未复制的事务 解决方法 日志文件满而造成SQL数据库无法写入文件时,可用两种方法: 一种方法:清空日志。 1.打开查询分析器,输入命令 DUMP TRANSACTION 数据库名WITH NO_LOG 2.再打开企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了。 另一种方法有一定的风险性,因为SQL SERVER的日志文件不是即时写入数据库主文件的,如处理不当,会造成数据的损失。 1: 删除LOG 分离数据库企业管理器->服务器->数据库->右键->分离数据库

相关文档
最新文档