现在业务有一张usertrack 日志记录表.每天会产生30万条数据.数据量大查询效率会非常慢 所以我考虑通过表分区来提示效率  逻辑上是一张表.但是分区后会按照分区条件将数据分在不同的物理文件 优点: 1)   改善查询性能:对分区对象的查询可以仅搜索自己关心的分区,提高检索速度. 2)   增强可用性:如果表的某个分区出现故障,表在其他分区的数据仍然可用: 3)   维护方便:如果表的某个分区出现故障,需要修复数据,只修复该分区即可: 4)   均衡I/O:可以把不同的分区映射到磁盘以平衡I…
c#中@标志的作用   参考微软官方文档-特殊字符@,地址 https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/tokens/verbatim 1.在变量名前加@,可以告诉编译器,@后的就是变量名.主要用于变量名和C#关键字重复时使用. string[] @for = { "John", "James", "Joan", "Jamie" }; fo…
Oracle数据库: 刚做一张5000万条数据的数据抽取,当前表同时还在继续insert操作,每分钟几百条数据. 该表按照时间,以月份为单位做的表分区,没有任何索引,当前共有14个字段,平均每个字段30个字节.当前表分区从201101到201512每月一个分区 测试服务器:xeno 5650,32核cpu,win2003操作系统,物理内存16G:测试工具plsql 1.最开始的查询: string.Format(@"select * from                           …
本文转载自:http://blog.csdn.net/iangujun/article/details/8136764 之前从没有用SqlServer数据库处理过大数据量的表,都是用Oracle,然后一般为数据量较大的表添加索引或主键都是用plsql工具,今天正好需要为一张保存于SqlServer数据库的千万级数据表增加索引,于是遇到了下面一系列的问题. 我开始想当然的右键需要增加索引的表名----设计----管理索引和建----添加索引----点击保存,一切看来顺其自然的事情,结果等待了几十秒…
  这次,发布清洗列表功能,需要对数据库进行升级.MailingList表加个IfCleaning字段,所有的t_User*表加个IfCleaned字段.   脚本如下 对所有的t_User表执行 alter table t_User** add IfCleaned bit default(0) not null 对Mailing list表执行 alter table t_MailingList add IfCleanning bit default(0) not null   简简单单的两个…
使用反射和动态生成代码两种方式(Reflect和Emit) 反射将DataTable转为List方法 public static List<T> ToListByReflect<T>(this DataTable dt) where T : new() { List<T> ts = new List<T>(); string tempName = string.Empty; T t = new T(); PropertyInfo[] propertys =…
前言 前几天上午在对数据库的一张表进行操作的时候,由于这张表是按照时间的一张统计表,正好到那天没有测试数据了,于是我想将表中所有的时间,统一更新到后一个月,于是对80w条数据的更新开始了.整个过程曲折的一批.同时学到了很多知识,在此进行记录.希望对大家有帮助. 首先是大批量更新,由于数据已经进行了分区,开始对分区进行分析,然后大批量操作死锁,对死锁的解决,最后存储过程来解决数据的大批量插入. 曲折的过程开始 由于测试数据到21号就没了,21号一上去,发现开发的功能,都没有数据了,图表也都空了.查…
大数据量查询,对数据库开发者来说,性能问题往往是最需要费尽心机的,借此总结自己优化此类问题的心得与大家分享,以免大家走更多的弯路. 1.使用主键临时表 大数据量表关联查询,是性能开销的主要原因.通过主键创建临时表,搬迁关联所需主键数据往往是我们在查询时的主要手段,接下来我们就可以通过主键临时表分批关联其他大表的方式轻松.高性能的实现大数据量查询. 2.只查询一次大表 在编写大数据量查询程序时,对于大的数据表,尽可能减少对大数据表的访问次数,必要时,可以缓存大数据表的结果. 3.分批处理,提高并发…
从总体上来看,对于大型网站,比如门户网站,在面对大量用户访问.高并发请求方面,基本的解决方案集中在这样几个环节:1.首先需要解决网络带宽和Web请求的高并发,需要合理的加大服务器和带宽的投入,并且需要充分的利用系统中软件.硬件的缓存机制,将能缓存的内容都进行缓存存储,减少计算层和存储层的压力. 2.其次需要对业务服务器和业务支撑服务器进行合理的分层,并且采用并行计算和分布式算法对大量计算进行处理,并且在开发的过程中需要采用Java SDK中并发包(Concurrency)进行编码实现. 3.存储…
[转]http://www.cnblogs.com/myhappylife/p/5006774.html 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:select id from…