月度归档:2019年01月

mssql sqlserver 数据库管理员工作内容分享


摘要:
下文根据日常工作内容收集的数据库管理员日常工作内容分享,如下所示:
实验环境:sql server 2008 R2



数据库管理员存在的价值:

保障数据库系统正常运行,为所有的业务系统提供数据存储保障,保障数据库系统的安全,为公司的经营决策提供有力的数据保障。
在一家公司里,如果数据库不能正常运行,将会导致业务不能正常开张,工作效率大打折扣。
如果数据被盗,会导致机密资料的丢失,如落入竞争对手手中,对公司将是毁灭性的打击。

1.数据库所需的各种软件安装

数据库管理员需安装数据库系统,并进行相关的配置,安装合适的补丁,
如果公司没有自动化运维,数据库管理员还需在服务器上跑相关的sql脚本。


2.配置数据库运维相关程序

例:索引维护 统计计划维护 表碎片整理 数据库完整性检测 等等数据库相关的管理工作


3.备份和恢复数据库

为数据库设定合理的备份计划,和备份还原测试计划,如果数据库一旦发生不可逆转的错误,数据库的各种备份文件可快速还原为可用的文件。
定期检测数据库的各种日志备份情况,定期模拟线上数据库坏死后,如果采用备份和日志还原数据库。


4.数据库安全

数据备份加密,数据库备份的安全存储 登录数据库的账户设定 数据库中存在的账户是否合理
检测是否有非法用户访问数据库 检测是否存在不合理的数据库请求次数
检查磁盘空间是否合理, 数据库的来访IP是否合理 数据库服务器的各项性能参数是否合理等等。

mssql sqlserver 日期时间存储精确到秒的方法


摘要:
下文分享sqlserver中将日期时间类型存储时,精确到秒后面的毫秒变为000的方法分享,如下所示:
实验环境:sql server 2008 R2


在sqlserver数据库中,当我们datetime类型对日期时间进行存储时,将会精确到秒后面的三位,
当我们使用samlldatetime存储,将会精确到分,也无法达到精确到秒的数据类型,
那么当我们需精确到秒的数据,我们只能采用datetime类型对数据进行存储,并在存储前将毫秒位置为000
如下所示:

     ---实现思路:
     ---方法1:
      ---对datetime类型的数据进行赋值的时,采用varchar(19)对数据进行截取,并且必须保证月、日、时、分、秒都占用两位长度,年份占用四位长度
     declare @maomao datetime 
     set @maomao = CONVERT(varchar(19),'2018-01-31 12:23:23.908', 20)
 
     select @maomao  as [剔除毫秒]
   
     ---方法2:
       --程序代码对日期赋值时,直接将后面的毫秒剔除掉
       DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"))
     

mssql sqlserver datetime存储类型选择(int,decimal ,varchar ,date)


摘要:
下文讲述sqlserver中datetime的存储类型选择,如下所示:
实验环境:sqlserver 2008 R2



一、int 、decimal 存储datetime类型

int 和decimal存储方式,首先需将datetime转换为int 或decimal类型放入数据库进行存储。
int类型存储最大精度为:日期
decimal类型存储最大精度:毫秒



二、varchar 存储datetime类型

varchar类型存储datetime,非常方便,只需将数据按照字符串的形式放入数据库中既可。
varchar存储数据占用空间非常大,例:存储年月日需要10个字节,而使用date类型只占用存储空间4个字节
varchar存储的日期数据,在查询检索时,需进行二次转换才可使用
varchar存储日期类型的最大优点,可以随意存储任意格式的日期样式



三、date 存储datetime类型

date类型是数据库中原生态数据类型,存储datetime数据最为方便和便捷,系统拥有多个原生态的函数支持对datetime类型的操作


综上所述:
当datetime存储后涉及相关计算时,我们可以采用date、int、decimal类型进行存储
如果datetime存储后不需进行相关运算,我们可以采用varchar类型进行存储