摘要: #region 把excel文件转换为DataSet./// /// 把excel文件转换为DataSet. /// /// 文件路径 /// 第一行初始值/// 第一列初始值/// 是否取多余1个Sheet/// public static DataSet ExcelToDataSet(string filepath, int firstRow, int firstColumn, bool moreSheet = false){ DataSet ds = new DataSet(); try { Workbook workbook = new ... 阅读全文
posted @ 2013-11-06 19:07 永不言败,自信相伴 阅读(444) 评论(0) 推荐(0) 编辑
摘要: 鄙人先后在CERNET做过拨号接入,在Yahoo&3721搞过搜索前端,在猫扑处理过mop.com的架构升级,在6.cn视频网站从事开发工作,还在多年的工作中接触和开发过不少大中型网站的模块,因此在大型网站应对高负载和并发的解决方案上有一些积累和经验,希望和大家一起探讨。 一个小型的网站,比如个人网站,可以使用最简单的html静态页面就实现了,配合一些图片达到美化效果,所有的页面均存放在一个目录下,这样的网站对系统架构、性能的要求都很简单,随着互联网业务的不断丰富,网站相关的技术经过这些年的发展,已经细分到很细的方方面面,尤其对于大型网站来说,所采用的技术更是涉及面非常广,从硬件到软件 阅读全文
posted @ 2013-11-05 16:34 永不言败,自信相伴 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 这个错误也搞了我好久,换了很多版本,后面在网上查到用xlWorkbookNormal来替代xlExcel?,立马就可以了。xlBook.SaveAs(FilePath,Microsoft.Office.Interop.Excel.XlFileFormat.xlExcel8, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Excel.XlSaveAsAccessMode.xlNoChange, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing) 阅读全文
posted @ 2013-10-15 17:29 永不言败,自信相伴 阅读(10786) 评论(0) 推荐(0) 编辑
摘要: 锁定数据库的一个表 SELECT * FROM table WITH (HOLDLOCK)注意: 锁定数据库的一个表的区别SELECT * FROM table WITH (HOLDLOCK) 其他事务可以读取表,但不能更新删除SELECT * FROM table WITH (TABLOCKX) 其他事务不能读取表,更新和删除SELECT 语句中“加锁选项”的功能说明 SQL Server提供了强大而完备的锁机制来帮助实现数据库系统的并发性和高性能。用户既能使用SQL Server的缺省设置也可以在select 语句中使用“加锁选项”来实现预期的效果。 本文介绍了SELECT语句中的各项“加 阅读全文
posted @ 2013-09-29 15:33 永不言败,自信相伴 阅读(475) 评论(0) 推荐(0) 编辑
摘要: 数据库表A有十万条记录,查询速度本来还可以,但导入一千条数据后,问题出现了。当选择的数据在原十万条记录之间时,速度还是挺快的;但当选择的数据在这一千条数据之间时,速度变得奇慢。凭经验,这是索引碎片问题。检查索引碎片DBCCSHOWCONTIG(表),得到如下结果:DBCCSHOWCONTIG正在扫描'A'表……表:'A'(884198200);索引ID:1,数据库ID:13已执行TABLE级别的扫描。-扫描页数……:3127-扫描扩展盘区数……:403-扩展盘区开关数……:1615-每个扩展盘区上的平均页数……:7.8-扫描密度[最佳值:实际值]……:24.20 阅读全文
posted @ 2013-09-16 16:58 永不言败,自信相伴 阅读(311) 评论(0) 推荐(0) 编辑
摘要: --学习创建表分区脚本/*SQL SERVER 2005中以上版本,终于引入了表分区,就是说,当一个表里的数据很多时,可以将其分拆到多个的表里,大大提高了性能。下面举例子说明之*/-------------------------------------------------------------/*比如,在D盘下建立如下几个目录D:\DataDB\PrimaryD:\DataDB\FG1D:\DataDB\FG2D:\DataDB\FG3D:\DataDB\FG4其中primary存放的是主数据库文件,其他FG1--FG4存放四个单独的文件组,可以见创立数据库TestDB,如下*/use 阅读全文
posted @ 2013-09-16 15:03 永不言败,自信相伴 阅读(326) 评论(0) 推荐(0) 编辑
摘要: 有关分页 SQL 的资料很多,有的使用存储过程,有的使用游标。本人不喜欢使用游标,我觉得它耗资、效率低;使用存储过程是个不错的选择,因为存储过程是经过预编译的,执行效率高,也更灵活。先看看单条 SQL 语句的分页 SQL 吧。方法1:适用于 SQL Server 2000/2005SELECTTOP页大小*FROMtable1WHEREidNOTIN(SELECTTOP页大小*(页数-1) idFROMtable1ORDERBYid)ORDERBYid方法2:适用于 SQL Server 2000/2005SELECTTOP页大小*FROMtable1WHEREid>(SELECTISN 阅读全文
posted @ 2013-09-06 11:43 永不言败,自信相伴 阅读(457) 评论(0) 推荐(0) 编辑
摘要: 你是否在千方百计优化SQL Server 数据库的性能?如果你的数据库中含有大量的表格,把这些表格分区放入独立的文件组可能会让你受益匪浅。SQL Server 2005引入的表分区技术,让用户能够把数据分散存放到不同的物理磁盘中,提高这些磁盘的并行处理性能以优化查询性能。 SQL Server数据库表分区操作过程由三个步骤组成: 1. 创建分区函数 2. 创建分区架构 3. 对表进行分区 下面将对每个步骤进行详细介绍。比如,在C盘下建立如下几个目录C:/Data2/PrimaryC:/Data2/FG1C:/Data2/FG2C:/Data2/FG3C:/Data2/FG4其中pri... 阅读全文
posted @ 2013-09-03 15:11 永不言败,自信相伴 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 虽然查询速度慢的原因很多,但是如果通过一定的优化,也可以使查询问题得到一定程度的解决。 查询速度慢的原因很多,常见如下几种:没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷)I/O吞吐量小,形成了瓶颈效应。没有创建计算列导致查询不优化。内存不足网络速度慢查询出的数据量过大(可以采用多次查询,其他的方法降低数据量)锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷)sp_lock, sp_who, 活动的用户查看,原因是读写竞争资源。返回了不必要的行和列查询语句不好,没有优化 可以通过如下方法来优化查询 :把数据、日志、索引放到不同的I/O设备上,增加读取速度,以前... 阅读全文
posted @ 2013-09-02 15:35 永不言败,自信相伴 阅读(269) 评论(0) 推荐(0) 编辑
摘要: 在查询语句中使用 NOLOCK 和 READPAST 处理一个数据库死锁的异常时候,其中一个建议就是使用 NOLOCK 或者 READPAST 。有关 NOLOCK 和 READPAST的一些技术知识点: 对于非银行等严格要求事务的行业,搜索记录中出现或者不出现某条记录,都是在可容忍范围内,所以碰到死锁,应该首先考虑,我们业务逻辑是否能容忍出现或者不出现某些记录,而不是寻求对双方都加锁条件下如何解锁的问题。 NOLOCK 和 READPAST 都是处理查询、插入、删除等操作时候,如何应对锁住的数据记录。但是这时候一定要注意NOLOCK 和 READPAST的局限性,确认你的业务逻辑可以容忍这些 阅读全文
posted @ 2013-08-30 17:46 永不言败,自信相伴 阅读(386) 评论(0) 推荐(0) 编辑