著名物流外企 SQL Server实战问题解决 技术文档.docx
- 文档编号:29885315
- 上传时间:2023-08-03
- 格式:DOCX
- 页数:8
- 大小:1MB
著名物流外企 SQL Server实战问题解决 技术文档.docx
《著名物流外企 SQL Server实战问题解决 技术文档.docx》由会员分享,可在线阅读,更多相关《著名物流外企 SQL Server实战问题解决 技术文档.docx(8页珍藏版)》请在冰豆网上搜索。
著名物流外企SQLServer实战问题解决技术文档
SQL实战问题
(ForSQL2000ServerinXSSC-CHN)
AReferenceGuide
Date:
FEBRUARY2006
问题一:
数据正确性检验
问题二:
索引优化
问题三:
修改用户密码需要注意
问题四:
备份策略设置
问题五:
死锁
问题六:
DTS和JOB命名
问题一:
数据正确性检验
XSSC数据库服务器上有几个非常重要的数据库,如ODS_CHN,ODS_Wofe,其中的数据定时从新加坡导入上海,然后还要将正确的数据导入北京、厦门等地区,是各地业务作业的基础。
保证每天数据的正确,是数据库管理员的一个最重大的职责,同时也非常繁琐。
每天有几十个表的数据要准确及时,检查量比较大。
经过几个月的摸索,现在有了一个比较快速、高效率的查数据的方法,同大家分享。
建立检查数据的DTS,设定JOB,让他每天自动运行,替代原先的较为缓慢的手工查询作业。
这样会提高检验的速度和减少人工误差。
DTS是根据XSSC的实际业务制作的,将近两天新加坡数据库中的相关表的的记录笔数,和本地数据库中的相关表中的记录笔数分别查出,然后写入一个资料表中(图一)。
只需查询一个结果资料表,比较两者数值是否一致,就可以判断数据是否有问题(图二)。
如果当天数据没有大问题,每天可以在9:
30AM之前发Email通知大家。
图一
图二
问题二:
索引优化
XSSC数据库中的主要数据库,ODS_CHN,从2001年9月就开始就有了数据,现在数据库数据文件就有将近8G大小,数据量非常大,一般的交易表,数据量都超过10万笔,收款表JOB_Cost记录更是超过了500万笔。
在查询时会比较慢,因此,索引的建立和维护就尤为重要。
索引类型一般分为两种,聚集索引和非聚集索引。
∙聚集索引只能有一个,资料表中的数据行顺序是按该索引排列,在创建主键时会自动将主键创建为聚集索引,聚集索引能大大提高查询速度。
∙非聚集索引,在同一个表中可以有多个,表中数据行不会按该索引排列。
非聚集索引有独立的索引页可以准确指向需要查找的数据行。
索引会在数据的不断删除、修改和增加中产生断裂和碎片,随着时间的推移,反而会影响数据的查询效率。
有两种方法可以减少索引碎片:
∙除去并重新创建聚集索引。
这种方法的缺点是索引在除去/重新创建周期内为脱机状态,并且操作属原子级。
∙使用DBCCINDEXDEFRAG按逻辑顺序重新排序索引的叶级页。
能联机操作。
缺点是在重新组织数据方面没有聚集索引的除去/重新创建操作有效。
索引创建:
一般XSSC数据库中比较常用的Where条件为单据编号和日期两个栏位,于是,将日期的降序和单据编号的升序作为聚集索引,对数据根据日期查询和有条件删除,比较有利。
还可以根据表的具体情况,将其他需要经常查询的栏位作为非聚集索引保存。
索引维护:
建立了DTS和JOB,在每个礼拜比较空闲的时候整理一次。
先用DBCCSHOWCONTIG方法查选出逻辑扫描碎片大于30%的资料表,再用DBCCINDEXDEFRAG的方法整理,这种方法不会使表脱机工作(图三)。
如果碎片量比较大,首次整理会花比较多的时间(图四)。
图三
图四
问题三:
修改用户密码需要注意
数据库权限管理,是保证数据库安全的最重要部分。
以给出满足用户需求的最小权限为好。
比如只需要查看数据库的数据,没有写入的需求,则仅给出该数据库的public和db_Reader权限即可。
密码的设置,最好使用强密码,不要用1等简单的数字,也尽量不要与用户名相同,以免被人一猜即中。
一般建议有大小写间隔,再加入符号或数字。
Sa用户,它是指派给固定服务器角色sysadmin,并不能进行更改或删除。
虽然sa是SQLServer内置的管理员登录,但不应在平时的工作中使用它。
如果有必要,可以创建新的系统管理员,只要赋予用户成为sysadmin固定服务器角色的成员,就可以拥有数据库最高操作权限。
只有当没有其它方法登录到SQLServer实例(例如,当其它系统管理员不可用或忘记了密码)时才使用sa。
而且不要使用空密码,请使用强密码。
如果需要修改用户密码,需要注意一些事项:
∙在应用程序中是否有使用该用户名,密码是否写死在程序中。
∙在DTS中是否有使用该用户,如果有,其中的密码也需要相应改变。
∙修改用户的密码,该用户创建的JOB有可能运行不了,需要重新创建一下。
∙如果是服务器正在使用的权限,请查询服务器设置。
如SharePoint服务器等。
∙在ODBC连接中也有可能写如密码,需要及时更改。
应用程序更改登录数据库的用户,在改前需要进行严格的测试,以免出现程序不能正常运行,或者出现影响其他程序或网络的事件。
问题四:
备份策略设置
根据数据库的不同情况,设置不同的备份策略。
∙恢复模式:
对数据及时性要求比较高的数据,可以保全日志文件,将恢复模式设置为Full,其余的设置为Simple。
∙备份间隔:
对数据要求较严格的数据库,可以每天备份,甚至每小时备份。
要求宽松或者数据能方便获取的数据库,可以每周备份或每月备份。
在备份前,对恢复模式为Full的数据库,先进行日志截断,数据库收缩,然后再备份,对恢复模式为Simgle的数据库也要先收缩,再备份。
如此,数据库文件会缩小一些,数据库备份的速度也会加快。
还能提高以后数据库使用的性能。
可以创建DTS,JOB,自动并且定期备份,只要检查是否备份成功即可(图五)。
当然也要定时对备份完成后的数据库文件进行测试,是否可以正常恢复。
其他备份相关信息,请参考文档《DatabasebackupStrategy》,其中有详细说明。
图五
问题五:
死锁
5.5服务器出现过死锁问题,当时点击CurrentAcivity会出现提示1222错误,解释为“已超过了锁请求超时时段”,点击对应的数据库表,整个企业管理器会Down掉。
SQLServer使用以下资源锁模式。
锁模式
描述
共享(S)
用于不更改或不更新数据的操作(只读操作),如SELECT语句。
更新(U)
用于可更新的资源中。
防止当多个会话在读取、锁定以及随后可能进行的资源更新时发生常见形式的死锁。
排它(X)
用于数据修改操作,例如INSERT、UPDATE或DELETE。
确保不会同时对同一资源进行多重更新。
意向
用于建立锁的层次结构。
意向锁的类型为:
意向共享(IS)、意向排它(IX)以及与意向排它共享(SIX)。
架构
在执行依赖于表架构的操作时使用。
架构锁的类型为:
架构修改(Sch-M)和架构稳定性(Sch-S)。
大容量更新(BU)
向表中大容量复制数据并指定了TABLOCK提示时使用。
两个线程都锁定数据,并且等待其它进程占有的资源,释放自己的锁时,他才能释放自己的锁,此时会发生死锁。
即当某组资源的两个或多个线程之间有循环相关性。
处理方法,可以在查询分析器中执行execsp_lock,这是一个系统存储过程,专门用来查看数据库中锁的情况。
找到锁住的进程号spid,然后用Kill命令将他杀掉,就可以解决这个问题。
KILL命令可能需要一些时间来完成,特别是在涉及回滚长事务时。
问题六:
DTS和JOB命名
DTS和JOB的命名,是为了方便DBA的维护。
XSSC数据库中的DTS和JOB命名都有一定的规律。
名称一般分为四段,第一个段为JOB执行间隔,如Daily、Weekly、Hourly、Monthly。
第二段为数据来源,第三段数据目的地,再后面一段就是该DTS或JOB的详细信息了,如表名、创建日期等。
例如:
Daily_SIN400_SHA1_ODSWOFE_Replication_F004P05、Dily_FAMS_ODS_XMN_RPT_F001P01_20041013,如此可以从名称就可以看出很多信息。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 著名物流外企 SQL Server实战问题解决 技术文档 著名 物流 外企 Server 实战 问题解决 技术 文档