随笔分类 -  07.Oracle

1
摘要:数据库表分割技术包含以下内容:水平分割/垂直分割/库表散列.接下来将对以上分割进行详细介绍,感兴趣的朋友可以了解下,对你日后维护数据库是很有帮助的一.水平分割 什么是水平分割?打个比较形象的比喻,在食堂吃饭的时候,只有一个窗口,排队打饭的队伍太长了,都排成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 海上浪子 阅读(722) 评论(0) 推荐(0) 编辑
摘要:一般人们分析问题,总是从问题现象,原因分析,解决方案这样的思路来分析思考问题,我想对这个数据库的水平拆分也按这样的思路来简单剖析一下。 先从问题现象入手,随着数据库表中数据日积月累越来越多,当表记录数达到千万甚至亿级别时,数据库表的访问效率下降明显,导致外层应用的访问效率非常差,访问时间急剧上升... 阅读全文
posted @ 2016-01-18 18:42 海上浪子 阅读(426) 评论(0) 推荐(0) 编辑
摘要:聚集索引 一种索引,该索引中键值的逻辑顺序决定了表中相应行的物理顺序。 聚集索引确定表中数据的物理顺序。聚集索引类似于电话簿,后者按姓氏排列数据。由于聚集索引规定数据在表中的物理存储顺序,因此一个表只能包含一个聚集索引。但该索引可以包含多个列(组合索引),就像电话簿按姓氏和名字进行组织一样。 ... 阅读全文
posted @ 2015-11-05 15:34 海上浪子 阅读(148) 评论(0) 推荐(0) 编辑
摘要:摘要:对比传统关系型数据库,NoSQL有着更为复杂的分类——键值、面向文档、列存储以及图数据库。这里就带你一览NoSQL各种类型的适用场景及一些知名公司的方案选择。在过去几年,关系型数据库一直是数据持久化的唯一选择,数据工作者考虑的也只是在这些传统数据库中做筛选,比如SQL Server、Oracl... 阅读全文
posted @ 2015-10-31 10:17 海上浪子 阅读(211) 评论(0) 推荐(0) 编辑
摘要:1、mysql的默认事务的隔离级别:可重复读取(repeatable read);2、sqlserver的默认事务的隔离级别:提交读取(read committed);3、oracle的默认事务的隔离级别:提交读取(read committed). 阅读全文
posted @ 2015-01-30 12:51 海上浪子 阅读(1293) 评论(0) 推荐(0) 编辑
摘要:最近经常写WCF服务和Windows服务,之前知道可以通过vs2010自带的“安装项目”可以发布程序,但是自vs2010起,同时提供了InstallShield LE。下面我们通过图示,来了解InstallShield LE的特性:一、下图是InstallShield 2011 Limited Ed... 阅读全文
posted @ 2014-12-09 13:47 海上浪子 阅读(451) 评论(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) 编辑
摘要: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) 编辑
摘要:写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) 编辑
摘要:在之前只知道SqlServer支持数据批量插入,殊不知道Oracle、SQLite和MySql也是支持的,不过Oracle需要使用Orace.DataAccess驱动,今天就贴出几种数据库的批量插入解决方法。首先说一下,IProvider里有一个用于实现批量插入的插件服务接口IBatcherProvider,此接口在前一篇文章中已经提到过了。/// /// 提供数据批量处理的方法。 /// public interface IBatcherProvider : IProviderService { /// /// 将 的数据批量插入到... 阅读全文
posted @ 2013-12-11 09:22 海上浪子 阅读(441) 评论(0) 推荐(0) 编辑
摘要:一、C# vs SQLite: C#SQLite字段名类型库类型GetFieldType(#)转换备注F_BOOLboolBIT NOT NULLBoolean F_BOOL_NULLbool?BITBoolean F_SBYTEsbyteINT8 NOT NULLSBytesbyte_ F_SBYTE_NULLsbyte?INT8SBytesbyte_ F_BYTEbyteUINT8 NOT NULLByte F_BYTE_NULLbyte?UINT8Byte F_SHORTshortINT16 NOT NULLInt16 F_SHORT_NULLshort?INT16I... 阅读全文
posted @ 2013-12-11 08:56 海上浪子 阅读(895) 评论(3) 推荐(0) 编辑
摘要:在企业数据库设计中,经常会遇到一个需求,就是希望把操作之前的数据保留下来,能够看到操作之前是什么数据,操作之后是什么数据。对于这种需求,我们可以使用保留历史数据或者使用版本来实现。为了能够保留历史数据,在版本设计时有以下方案:一、使用版本号版本号是一种常见的版本设计方案,就是在要进行历史数据保留的表上面增加一个版本号字段,该字段可以是DateTime类型,也可以是int类型,每进行数据操作时,都是创建一个新的版本,版本是只增不减的,所以只需要拿到最大一个版本号,就能得到最新的业务数据。版 本号除了能够用于留存历史数据外,还有一个功能就是避免并发编辑操作。比如我们有一个对象A,当前的版本是1,两 阅读全文
posted @ 2013-12-10 16:46 海上浪子 阅读(359) 评论(0) 推荐(0) 编辑
摘要:又一个多月没冒泡了,其实最近学了些东西,但是没有安排时间整理成博文,后续再奉上。最近还写了一个发邮件的组件以及性能测试请看 《NET开发邮件发送功能的全面教程(含邮件组件源码)》,还弄了个MSSQL参数化语法生成器,会在9月整理出来,有兴趣的园友可以关注下我的博客。分享原由,最近公司用到,并且在找最合适的方案,希望大家多参与讨论和提出新方案。我和我的小伙伴们也讨论了这个主题,我受益匪浅啊……博文示例:GUID生成Int64值后是否还具有唯一性测试Random生成高唯一性随机码今天分享的主题是:如何在高并发分布式系统中生成全局唯一Id。但这篇博文实际上是“半分享半讨论”的博文:1) 半分享是我将 阅读全文
posted @ 2013-12-09 09:43 海上浪子 阅读(809) 评论(0) 推荐(0) 编辑
摘要:故事背景: 本人有幸,经老友( 现为x知名快递公司技术总监 ) 推荐进入中国前三大民营快递公司之一工作,在此非常感谢他,在此也非常感谢我在第一家公司帮助我进步的兄弟(我在时的项目经理,现为 x 知名自动识别行业企业部门高级经理)。下面介绍6年后和6年前的我的职业生涯中的两个单表大数据故事。(1) 6年后 单表大数据 之故事(一) 来之前老友告之现在核心运营系统 Oracle数据库中单表数据半年过10亿了,使用传统T-Sql不论如何优化,查询客户信息速度也提升不上去。需要使用企业级搜索引擎(Solr)来解决本部门其余两大辅助业务系统去查询客户信息。如果我过去的话,先把这块带肉的骨头啃了。当时一听 阅读全文
posted @ 2013-11-28 17:36 海上浪子 阅读(2842) 评论(35) 推荐(9) 编辑

1