随笔分类 - 08.Database
摘要:昨日将sqlserver2005从windows2003迁移到windows2008系统上后,发现经常打开网页时提示sql server连接超时,但是有时候又是正常的,一开始一直以为是网络连接不好,后来发现超时时,远程连接完全正常,所以排除了这一因素,查看防火墙,发现1433端口tcp,udp也是允许通过的,无奈只能百度,发现在windows2008上除了1433,还有其它端口需要打开,这里把网上...
阅读全文
摘要:在一些并发量比较高的"中小型"应用中,如果短期内有大量的数据插入,利用msmq中转是一个不错的选择(petshop就是这么干的),想知道msmq一秒钟内到底能发多少条记录吗?[代码]在我的IBM T60上跑出来的结果,大概1s钟能发2500条左右(也就是说下订单的话,一秒钟能顺畅下2500张单子,中小型购物系统中应该够用了)
阅读全文
摘要:原文:http://blog.s135.com/post/329/前言:dbcached 1.0 beta* 在 Memcached 1.2.4 的基础上编写而成,也是我的第一个开源C项目。编写 dbcached 的目的是为了最大限度的发挥 Memcached 内存缓存的优势,便捷地维护 Memcached 服务器节点哈希列表,智能地支持 Memcached 故障转移,同时保证数据的持久化存储。 ...
阅读全文
摘要:[代码]测试结果:Linq排序耗时: 2131毫秒二分法排序耗时: 2083毫秒二者几乎差不多
阅读全文
摘要:并发量太高的应用中(比如10分钟内插入300w条记录),数据库往往难堪重负,在没有银子实现服务器集群/负载均衡/分布式存储的情况下,可以尝试一下把数据库做一个临时副本全部放在内存中处理,完成操作后,再同步到硬盘的物理数据库中。那么,把数据库放在内存中到底有多快? 晚上抽空试了一下:步骤1:先用Ramdisk之类的工具,划出一块内存当作虚拟硬盘.步骤2:先在sql2005中新建一个空库db,然后分离...
阅读全文
摘要:晚上闲来无事,突然想测试一下Ado.Net连接池带来的连接速度提升,写了以下代码:[代码]本机执行结果1:--------------------------------1连接所用时间:4802192连接所用时间:1303连接所用时间:604连接所用时间:47--------------------------------本机执行结果2:------------------------------...
阅读全文
摘要:sqlDependency提供了这样一种能力:当被监测的数据库中的数据发生变化时,SqlDependency会自动触发OnChange事件来通知应用程序,从而达到让系统自动更新数据(或缓存)的目的.快速上手可参见园友的下列文章http://www.cnblogs.com/xrinehart/archive/2006/07/27/461106.html .NET 2.0 SqlDependency快...
阅读全文
摘要:以前一直觉得linq to sql生成类似where id not in (1,3,5)或where id not in (select id from ...)这样的条件不是很方便,每次我都是把条件ID事先取到一个数组里,然后用 !Arr.Contains(c.Id)这样处理,今天突然发现这样好傻,其实可以完全直接用linq写成一句,贴个示例在这里,以后备查froma in TableA whe...
阅读全文
摘要:场景:需要从T_User表中返回指字条件的某条记录的某一个字段在Linq中有二种理论上都行得通的写法,见下面的代码:[代码]初看上去Guid _UserId = db.T_User.Single(c=>c.F_ID==new Guid("00000000-0000-0000-0000-000000000001")).F_ID;这种写法似乎要比下面的写法省事得多Guid _UserId = d...
阅读全文
摘要:以前手写sql的时代,我们经常用DataTable,自从用Linq后,很少用DataTable这些原始的东东了,近日在开发中遇到一些特殊情况,用户要求临时在显示数据上增加一列(该列是根据业务逻辑动态计算得来的一个数字),想了下,还是直接用DataTable来得方便(当然用List<T>,自己构造T类型也能解决,不过考虑这些需求只是一些临时性的,单独为这些临时性的要求写一个自定义类未免太...
阅读全文
摘要:原文:http://www.cnblogs.com/lfp1010/archive/2008/10/01/1302899.htmlsql2000备份的数据库还原到sql2005后,选择“数据库关系图”提示:此数据库没有有效所有者,因此无法安装数据库关系图支持对象。若要继续,请首先使用“数据库属性”对话框的“文件”页或 ALTE...
阅读全文
摘要:近日在一个大型Web项目中,采用Linq to Sql替换原来的sqlcommand/sqldatareader方式来获取数据,上线后刚开始一切正常,但是随着访问量的增加,网站明显慢了很多,监测服务器CPU占用率/内存使用情况等性能指标却发现均在正常范围内,无意中在SqlServer Profier中跟踪数据库执行的sql语句时,发现有大量语句直接将整个表的数据全部提取出来了,而非仅返回分页中的当...
阅读全文
摘要:原文:http://sqlserver2005.itpub.net/post/22359/210413早在sql server 2000中可以通过sql mail给指定的邮件地址发邮件。SQL SERVER 2005中我们仍外可以用sql server2000中的SQLMAIl功能 发送邮件,但SQL SERVER2005中又提供一个新数据库邮件功能也可以发送和接收邮件。这里以数据库邮件为例进行说...
阅读全文
摘要:原文: http://www.rainsts.net/article.asp?id=550对 ORM 而言,延迟加载(也叫 Lazy Loading)是必须的,毕竟当我们只是获取用户基本信息时,总不能动不动就返回大段的用户个人简介不是。在 VS 2008 O/R Designer 中,很容易找到 Delay Loaded 的设置。只是当我在自动生成的代码中找寻这个设置时,着实迷糊了半天。基于惯性思...
阅读全文
摘要:在提交或回滚 SqlTransaction 时,应始终使用 Try/Catch 进行异常处理。如果连接终止或事务已在服务器上回滚,则 Commit 和 Rollback 都会生成 InvalidOperationException。下面的示例创建一个 SqlConnection 和一个 SqlTransaction。此示例还演示如何使用 BeginTransaction、Commit 和 Roll...
阅读全文
摘要:[代码]出错信息如下:方法“Boolean Contains(System.Guid)”不支持转换为 SQL。估计是.net现有的linq to sql还无法直接将IList某些类型(比如Guid类型)的Contains方法正确翻译为SQL语句研究了好久,无意间发现linq的100个官方例子中,有一个用数组实现in语句的例子,也是用Contains做的,于是把IList&l...
阅读全文
摘要:原文:http://www.cnblogs.com/nokiaguy/archive/2008/05/11/1191906.html 要在10000000 - 99999999之间产生100万个不重复的随机数。可以建立一个表table1,这个表有两个字段,一个是所产生的随机数字段(int型),另外一个也是int型字段。 使用99999999 - 10000000 =89999999 整除1000...
阅读全文
摘要:原文:http://www.cnblogs.com/nokiaguy/archive/2008/05/09/1190551.html 任何程序都可能出现错误,在SQL Server中执行Transact-SQL也不例外。如果在Transact-SQL中发生了错误,一般有两种捕捉错误的方法,一种是在客户端代码(如 c#、delphi等)中使用类似try...catch的语句进行捕捉;另外一种就是在T...
阅读全文
摘要:原文:http://www.cnblogs.com/blusehuang/archive/2007/07/05/807027.html 现在的Linq To Sql只支持单表继承,不支持一实体一具体表和一实体一扩展表等方式继承。什么是单表继承呢?所谓单表继承就是把整个继承体系存储在数据库的一个表中。由此可以知道,这个表结构包括所有实体的属性字段,如果在该继承体系中,实体的数量较多,就会产生大量的n...
阅读全文
摘要:原文:http://www.cnblogs.com/teddyma/archive/2006/08/14/inheritencemappinginorm.html实体继承是基于OO和关系型数据库软件系统设计中的一个重要主题。本文通过基于NBear的实例解析ORM中的实体继承体系映射的方方面面。本文涉及的内容包括:1. 单表继承体系2. 一实体一具体表3. 一实体一扩展表4. 接口实现映射vs基类继...
阅读全文