随笔分类 -  06.SqlServer

摘要:数据库表分割技术包含以下内容:水平分割/垂直分割/库表散列.接下来将对以上分割进行详细介绍,感兴趣的朋友可以了解下,对你日后维护数据库是很有帮助的一.水平分割 什么是水平分割?打个比较形象的比喻,在食堂吃饭的时候,只有一个窗口,排队打饭的队伍太长了,都排成S型了,这时容易让排队的人产生焦虑情绪,... 阅读全文
posted @ 2016-01-18 20:38 海上浪子 阅读(212) 评论(0) 推荐(0) 编辑
摘要:引言为什么需要锁(并发控制)? 在多用户环境中,在同一时间可能会有多个用户更新相同的记录,这会产生冲突。这就是著名的并发性问题。典型的冲突有:丢失更新:一个事务的更新覆盖了其它事务的更新结果,就是所谓的更新丢失。例如:用户A把值从6改为2,用户B把值从2改为6,则用户A丢失了他的更新。脏读:当一个... 阅读全文
posted @ 2016-01-18 20:18 海上浪子 阅读(333) 评论(0) 推荐(0) 编辑
摘要:摘要:如果企业计划构建高性能的SaaS应用,仅凭云服务基础设施是不够的。如何基于云服务平台设计并实施符合自身业务特点的系统架构,是决定产品性能的关键。本文将讲述我们如何利用云服务,解决海量用户的数据库使用问题。杭州湖畔网络技术有限公司是一家专业提供SaaS化电商ERP服务的创业公司,主要用户群体为经... 阅读全文
posted @ 2016-01-18 19:06 海上浪子 阅读(720) 评论(0) 推荐(0) 编辑
摘要:一般人们分析问题,总是从问题现象,原因分析,解决方案这样的思路来分析思考问题,我想对这个数据库的水平拆分也按这样的思路来简单剖析一下。 先从问题现象入手,随着数据库表中数据日积月累越来越多,当表记录数达到千万甚至亿级别时,数据库表的访问效率下降明显,导致外层应用的访问效率非常差,访问时间急剧上升... 阅读全文
posted @ 2016-01-18 18:42 海上浪子 阅读(426) 评论(0) 推荐(0) 编辑
摘要:项目背景这是给某数据中心做的一个项目,项目难度之大令人发指,这个项目真正的让我感觉到了,商场如战场,而我只是其中的一个小兵,太多的战术,太多的高层之间的较量,太多的内幕了。具体这个项目的情况,我有空再写相关的博文出来。这个项目是要求做环境监控,我们暂且把受监控的设备称为采集设备,采集设备的属性称为监... 阅读全文
posted @ 2015-11-28 13:31 海上浪子 阅读(278) 评论(0) 推荐(0) 编辑
摘要:聚集索引 一种索引,该索引中键值的逻辑顺序决定了表中相应行的物理顺序。 聚集索引确定表中数据的物理顺序。聚集索引类似于电话簿,后者按姓氏排列数据。由于聚集索引规定数据在表中的物理存储顺序,因此一个表只能包含一个聚集索引。但该索引可以包含多个列(组合索引),就像电话簿按姓氏和名字进行组织一样。 ... 阅读全文
posted @ 2015-11-05 15:34 海上浪子 阅读(148) 评论(0) 推荐(0) 编辑
摘要:上篇中说了通过SQL JOB的方式对数据库的同步,这一节作为上一节的延续介绍通过发布订阅的方式实现数据库之间的同步操作。发布订阅份为两个步骤:1、发布。2订阅。首先在数据源数据库服务器上对需要同步的数据进行发布,然后在目标数据库服务器上对上述发布进行订阅。发布可以发布一张表的部分数据,也可以对整张表... 阅读全文
posted @ 2015-03-29 11:08 海上浪子 阅读(133) 评论(0) 推荐(0) 编辑
摘要:1、mysql的默认事务的隔离级别:可重复读取(repeatable read);2、sqlserver的默认事务的隔离级别:提交读取(read committed);3、oracle的默认事务的隔离级别:提交读取(read committed). 阅读全文
posted @ 2015-01-30 12:51 海上浪子 阅读(1293) 评论(0) 推荐(0) 编辑
摘要:网上关于SQL优化的教程很多,但是比较杂乱。近日有空整理了一下,写出来跟大家分享一下,其中有错误和不足的地方,还请大家纠正补充。这篇文章我花费了大量的时间查找资料、修改、排版,希望大家阅读之后,感觉好的话推荐给更多的人,让更多的人看到、纠正以及补充。1.对查询进行优化,要尽量避免全表扫描,首先应考虑... 阅读全文
posted @ 2014-07-21 11:10 海上浪子 阅读(174) 评论(0) 推荐(0) 编辑
摘要:数 据库设计是整个程序的重点之一,为了支持相关程序运行,最佳的数据库设计往往不可能一蹴而就,只能反复探寻并逐步求精,这是一个复杂的过程,也是规划和结 构化数据库中的数据对象以及这些数据对象之间关系的过程。下面给出了20个数据库设计最佳实践,当然,所谓最佳,还是要看它是否适合你的程序。一起来了解 了解吧。使用明确、统一的标明和列名,例如 School, SchoolCourse, CourceID。数据表名使用单数而不是复数,例如 StudentCourse,而不是StudentCourses。数据表名不要使用空格。数据表名不要使用不必要的前缀或者后缀,例如使用School,而不是TblScho 阅读全文
posted @ 2014-03-13 14:11 海上浪子 阅读(197) 评论(0) 推荐(0) 编辑
摘要:上一篇: MongoDb企业应用实战(一) 写在MongoDB应用介绍之前(i) 有段时间没跟大家去分享和探讨过一些问题,分享过一些经验了(失败过的,痛苦过的才最有看点啊,不知道各位同仁们怎么去看这个问题?)。接着跟大家唠叨唠叨。且说6年前,那段千万数据级别刻骨铭心的经历,让我真正意识到一个好的产品或者是一个好的软件系统是需要不断的提炼,优化,改进,检验,再改进。这才能够一举奠定它在市场中的地位和价值(6年前,与其说那是项目,到不如说是一个完整的自动识别行业的解决方案。(i)高速传送带,(ii)高速成组扫描设备,(iii)条形码打印机,(iv)自动剔除气缸,(v)手持终端[PDA],(vi). 阅读全文
posted @ 2014-02-28 11:41 海上浪子 阅读(790) 评论(0) 推荐(0) 编辑
摘要:对于DB服务器同样也可以调整最大连接数来做优化。 在调整优化好最大连接数之后,就只有软硬件负载均衡了。硬件负载均衡能够直接通过智能交换机实现,处理能力强,而且与系统无关,但是价格贵,配置困难,不能区分实习系统与应用的状态。所以硬件负载均衡适用于一大堆设备,大访问量,简单应用。软件负载均衡是基于系统与应用的,能过更好地根据系统与应用的状况来分配负载。性价比高。PCL负载均衡软件,Linux下的LVS软件。程序级别的并发控制:当两个用户同时访问一个页面,一个用户可能更新的事另一个用户已经删除的记录。或者,在一个用户加载页面跟他点击删除按钮之间的时间里,另一个用户修改了这条记录的内容。有下面三中并发 阅读全文
posted @ 2014-01-02 15:08 海上浪子 阅读(306) 评论(0) 推荐(0) 编辑
摘要:今天遇到了一个问题,需要把原数据库的一些数据导入到新数据库中,其中包括700多条存储过程。开始通过sql语句查询出所有的存储过程,然后再创建,发现创建存储过程时不能同时创建多个。select sm.object_id, object_name(sm.object_id) as object_name, o.type, o.type_desc, sm.definition from sys.sql_modules sm inner join sys.objects o on sm.object_id = o.object_id where o.type = 'P' and o.. 阅读全文
posted @ 2013-12-11 16:18 海上浪子 阅读(270) 评论(0) 推荐(0) 编辑
摘要:ylbtech-DatabaseDesgin:ylbtech-cnblogs(博客园)-数据库设计-6.0-Msg(短消息)DatabaseName:cnblogs(博客园)Model:Passport:"短消息"块数据库设计Type:专业技术网站Url:http://www.cnblogs.com/1.A,数据库关系图(Database Diagram)1.B,数据库设计脚本(Database Design Script)6,sql-basic-msg.sqluse cnblogsgo-- ========================================= 阅读全文
posted @ 2013-12-11 15:53 海上浪子 阅读(180) 评论(0) 推荐(0) 编辑
摘要:大数据处理是一个头疼的问题,特别当达不到专业DBA的技术水准时,对一些数据库方面的问题感到无赖。所以还是有必要了解一些数据库方面的技巧,当 然,每个人都有自己的数据库方面的技巧,只是八仙过海,所用的武功不同而已。我把我最常用的几种方式总结来与大家分享,大家还有更多的数据库设计和优化的 技巧,尽量的追加到评论中,有时一篇完整的博客评论比主题更为精彩。方法1:采用表分区技术。 第一次听说表分区,是以前的一个oracle培训。oracle既然有表分区,就想到mssql是否有表的分区,当时我回家就google了一把,资料还是有的,在这我儿只是再作一次推广,让更多的人了解和运用这些技术。 表分区,就.. 阅读全文
posted @ 2013-12-11 15:26 海上浪子 阅读(411) 评论(2) 推荐(1) 编辑
摘要:处理上百万条的数据库如何提高处理查询速度1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:select id from t where num=03.应尽量避免在 where 子句中使用!=或操作符,否则将引擎放弃使用索引而进行全表扫描。4.应尽量避免在 where 子句中使用 or 来 阅读全文
posted @ 2013-12-11 15:04 海上浪子 阅读(226) 评论(0) 推荐(0) 编辑
摘要:分区函数和分区方案的创建和使用方法具体设计过程如下:(1)首先创建一个名为partionTest的数据库。然后分别为数据库partionTest添加四个文件组,文件组名依次为FileGroup001~FileGroup004,然后为该数据库添加四个数据文件,分别命名为File001~File004,并将它们依次保存到文件组FileGroup001~FileGroup004中。(2)以数据库partionTest为例,右击数据库partionTest,从其快捷菜单中选择【属性】命令,打开【数据库属性】对话框。选择该对话框中的【选择页】列表中的【文件】选项,然后单击选项页的【添加】按钮,为该数据库 阅读全文
posted @ 2013-12-11 14:50 海上浪子 阅读(292) 评论(0) 推荐(0) 编辑
摘要:下面进入正题吧,很多时候当单张数据表的数据量比较大的时候比如千万级别条记录、上亿级别记录,如果不做优化,那么查询的效率大家清楚。有经验的人会通过各种手段做优化,其中表分区就是其中一种手段。个人对表分区的口语化解释:把一张表分成几个区域例如:一张业务表,有一个字段是月份或者年份,那么可以按照月份/年份来分区,当客户要查询某个月份/年份的数据的时候就到那个月份/年份的分区去查询,不用整个表去查询,这样就提高了不小效率。还是就是可以把分区文件组放在不同的磁盘分区或者不同的硬盘去,减少磁盘I/O。以上这些都是表分区的特点。下面说一下概念吧~SQLSERVER数据库服务器中包含很多数据库对象,其中就包括 阅读全文
posted @ 2013-12-11 14:47 海上浪子 阅读(381) 评论(0) 推荐(0) 编辑
摘要:近来在开发一个项目时,一包含数字的字符串,需要取出中间的数字部分进行排序.经过baidu搜索。并结合自己项目的需求,编写了一个自定义的SQL函数用供项目中使用。/****** Object: UserDefinedFunction [dbo].[F_Get_No] Script Date: 10/18/2013 22:03:13 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOcreate function [dbo].[F_Get_No] ( @No varchar(100) ) RETURNS bigint AS BEGIN... 阅读全文
posted @ 2013-12-11 14:39 海上浪子 阅读(1860) 评论(0) 推荐(0) 编辑
摘要:写sql语句分别按日,星期,月,季度,年统计销售额--按日select sum(consume),day([date]) from consume_record where year([date]) = '2006' group by day([date])--按周quarterselect sum(consume),datename(week,[date]) from consume_record where year([date]) = '2006' group by datename(week,[date])--按月select sum(consume), 阅读全文
posted @ 2013-12-11 14:35 海上浪子 阅读(267) 评论(0) 推荐(0) 编辑