日度归档:2018年5月16日

mssql sqlserver中函数和存储过程的区别简介


摘要:
下文主要讲述存储过程和函数的区别


函数和存储过程的不同点:
1:存储过程可以在SSMS上直接点击右键,输入参数,然后点击执行,进行调用运行
函数不可以这样操作,函数只可以采用脚本的方式直接调用

	  select dbo.[函数名](参数名)
	 

2:函数只能返回数据(参数和表)
存储过程,既可以返回数据,也可以输出多个表信息,还可以获取输出消息
3:查询语句中,可以使用函数作为对象输出,存储不可以进行此类操作
4:存储过程执行时,会被缓存执行计划
函数执行后,不会被缓存
5:通常我们把复杂的功能放入存储过程,而把简单的处理转换功能放入函数中

mssql sqlserver 2012函数format功能简介


摘要:
sqlserver format函数是sqlserver2012中,新提供的函数,
此函数使用方法类似c#中的format,
下文将举例说明,format函数的用法
实验环境:sqlserver 2012


/*
format说明:
C:	货币
D:	十进制	
E:	科学计数法
G:	常规
N:	用分号隔开的数字
X:	十六进制
类似c#的format用法
....
*/
select format(12,'X','zh-cn') as 将12转换为十六进制
select format(9888,'N') as [逗号隔开]
select format(200,'G') as [常规]
select format(200,'E') as [科学计数法]
select format(32,'D') as [十进制]
select format(32,'C','zh-cn') as [货币],format(32,'C','en-US') as [货币美元]
select format(GETDATE(),'yyyy年MM月dd日') as 当前日期  

---日期转换为毫秒 
SELECT FORMAT(GETDATE(),'yyyyMMddHHmmssfff') as [日期毫秒]

mssql sqlserver 分库分表思路简介


摘要:
当系统并发量超级大的时候,我们需减轻单台DB所承受的压力时,需将一个DB分散到多台服务器上运行,对外提供DB服务,
下文将数据库分拆所涉及的知识点进行列举说明。


1.DB数据垂直拆分

垂直拆分:
将数据库中许多表,根据某一规则(例:业务规则),分别放入到不同的数据库中,并部署到不同的服务器上。
常见的垂直拆分有:
单点登录、各种分布式系统
————————————
例:
用户信息表 部署在服务器DB1上
售前管理 部署在服务器DB2上
互联网客户管理 部署在服务器DB3上
…..

垂直拆分优点:
1.拆分后数据库存储更加清晰,方便后续服务扩容
2.BI报表更易生成
3.方便对重点数据进行管理和监控
垂直拆分的缺点:
1.业务表和用户表之间无法join ,导致这类关联数据非常复杂
2.增加代码编写的复杂度,事务编写更复杂



2.DB数据水平拆分

水平拆分的方式:是将一张表里面的根据不同的规则放入不同的库中。
例:
将QQ用户表:
根据号段:1000~10000 放入服务器DB1上
根据号段:10000~20000 放入服务器DB2上
根据号段:20000~30000 放入服务器DB3上
……

水平拆分的优点:
1.当某一业务的数据达到巨大时,我们必须通过水平拆分使某一业务可以支持大量访问
2.代码层改动少,只需修改数据访问规则
3.水平拆分后,系统的稳定性增加,不会出现某一业务无法打面积访问和使用
水平拆分的缺点:
1.水平拆分后,业务数据都分算到不同的服务器上,对报表的获取加大难度
2.水平拆分后,事务性操作同垂直拆分一样,操作变的困难
3.数据分页,写法变得复杂
4.多数据管理存在问题