SQL Server 2008中SQL应用之-“死锁(Deadlocking)”
当一个用户会话(会话1)已经落定了一个资源,而另一个会话(会话2)想要修改该资源,并且会话2也锁定了会话1想要修改的资源时,就会出现死锁(deadlocking)。在另一方释放资源前,会话1和会话2都不可能继续。所以,SQL Server会选择死锁中的一个会话作为死锁牺牲品。
注意:死锁牺牲品的会话会被杀死,事务会被回滚。
注意:死锁与正常的阻塞是两个经常被混淆的概念。
发生死锁的一些
http://www.cyqdata.cn/cnblogs/article-detail-40456
SQL Server数据库表锁定原理以及如何解除表的锁定
1. 数据库表锁定原理
1.1 目前的C/S,B/S结构都是多用户访问数据库,每个时间点会有成千上万个user来访问DB,其中也会同时存取同一份数据,会造成数据的不一致性或者读脏数据。
1.2 事务的ACID原则
1.3 锁是关系数据库很重要的一部分, 数据库必须有锁的机制来确保数据的完整和一致性。
1.3.1 SQL Server中可以锁
http://www.cyqdata.cn/cnblogs/article-detail-40452
[推荐]ORACLE SQL:经典查询练手第三篇(不懂装懂,永世饭桶!)
[推荐]ORACLE SQL:
经典查询练手第三篇(不懂装懂,永世饭桶!)
——通过知识共享树立个人品牌。
本文与大家共同讨论与分享ORACLE SQL的一些常用经典查询,欢迎大家补充,同时你认为有那些经典的也可分享出来。在本文中,对每一个问题,你要是认为有什么更好的解决方法也欢迎你及时提出。交流与分享才能共同进步嘛,感
http://www.cyqdata.cn/cnblogs/article-detail-40405
MySQL 学习笔记 二
上一篇:http://www.cnblogs.com/hoojo/archive/2011/06/20/2085390.html Ø function 函数 函数的作用比较大,一般多用在select查询语句和where条件语句之后。按照函数返回的结果,可以分为:多行函数和单行函数;所谓的单行函数就是将每条数据进行独立的计算,然后每条数据得到一条结果。如:字符串函数;而多行函数,就是多条记录同时
http://www.cyqdata.cn/cnblogs/article-detail-40403
DBA技巧:如何编写可重用的MySQL查询
当人们提及可重用的查询的时候,立即映入脑海的往往就是存储过程了。虽然这些存储过程是编写可重用代码不可分割的一部分,但要记住的是,它们只是很少的一部分而已,而非全部。此外,其它可重用代码包括视图、内置函数以及用户定义的函数。在本文中,我们将向读者详细介绍如何组合这些元素,以令我们的选择语句可以更好的适用于各种查询。
一、关于视图
视图的用途很多,例如简化复杂的模式及查询,或者提供安全性等等
http://www.cyqdata.cn/cnblogs/article-detail-40353
软件开发人员真的了解SQL索引吗(索引使用原则)
索引的优点:这个显而易见,正确的索引会大大提高数据查询,对结果进行排序、分组的操作效率。
索引的缺点:优点显而易见,同样缺点也是显而易见:
1:创建索引需要额外的磁盘空间,索引最大一般为表大小的1.2倍左右。
2:在表数据修改时,例如增加,删除,更新,都需要维护索引表,这是需要系统开销的。
3:不合理的索引设计非但不能利于系统,反而会使系统性能下降。例如我们在一个创建有非聚集索引的
http://www.cyqdata.cn/cnblogs/article-detail-40344
asp.net利用log4net写入日志到SqlServer数据库
asp.net利用log4net写入日志到SqlServer数据库,Log4net是一个开源的错误日志记录项目,易用性强,源自log4j,品质值得信赖。 下面就我的安装部署log4net到MS sql server的经验与大家分享。
下载log4net的Dll文件并引入到项目中,在你的web主项目(比如MainWeb.csproj)添加对log4net.dll的引用,并在相应的Globall.
http://www.cyqdata.cn/cnblogs/article-detail-40340
NoSQL内战:MongoDB与CouchDB查询方式对比
MongoDB和CouchDB都是面向文档的数据库,它们都使用JSON文档格式,它俩通常都被看作是NoSQL数据库,并且现在都很时髦,有很多的共同点,但谈到查询时,两者的差别就很明显了,CouchDB需要预定义视图(本质上是JavaScript MapReduce函数),而MongoDB支持动态查询(基本上和传统关系数据库上的即席查询类似),更重要的是,谈到查询时,CouchDB的API是REST
http://www.cyqdata.cn/cnblogs/article-detail-40277
详解PostgreSQL中的checkpoint概念
checkpoint又名检查点,在oracle中checkpoint的发生意味着之前的脏数据全部写回磁盘,数据库实现了一致性与数据完整性。oracle在实现介质恢复时将以最近的checkpoint为参照点执行事务前滚。在postgresql中checkpoint起着相同的作用:写脏数据;完成数据库的完整性检查。
checkpoints相关参数: checkpoint_segments: W
http://www.cyqdata.cn/cnblogs/article-detail-40267
MySQL转换Oracle的七大注意事项
有很多应用项目, 刚起步的时候用MySQL数据库基本上能实现各种功能需求,随着应用用户的增多,数据量的增加,MySQL渐渐地出现不堪重负的情况:连接很慢甚至宕机,于是就有MySQL转换Oracle的需求,应用程序也要相应做一些修改。下面总结出MySQL转换Oracle的几点注意事项,希望对大家有所帮助。
1.自动增长的数据类型处理
MySQL有自动增长的数据类型,插入记录时不用操作此字段,
http://www.cyqdata.cn/cnblogs/article-detail-40219
ASP.NET调用.sql文件(二)
笔者前一阵子发表了一篇《ASP.NET调用.sql文件》文章,主要是是解决数据库配置,减去传统手工附加数据库和自己改写web.config文件等等这些复杂的过程,而是配置的向导。其中给出关键的技术知识点,就是通过sql数据库生成数据库脚本即.sql文件,然后通过调用osql.exe来执行.sql文件。
这里,园友首先质疑了其安全性,认为程序存在被他人利用的危险。笔者对这方面没有太多经验,希望来
http://www.cyqdata.cn/cnblogs/article-detail-40206
【C#】C#访问和操作MYSQL数据库
这里介绍下比较简单的方式,引用MySql.Data.dll然后添加一个MySqlHelper类来对MySql数据库进行访问和操作。
1.将MySql.Data.dll引用到你的项目中
下载地址:MySql.Data.rar
添加引用后在你的数据库操作类(如MySqlHelper.cs)中添加引用声明
using MySql.Data;using MySql.Da
http://www.cyqdata.cn/cnblogs/article-detail-40137
[推荐]ORACLE SQL:经典查询练手第二篇(不懂装懂,永世饭桶!)
[推荐]ORACLE SQL:
经典查询练手第二篇(不懂装懂,永世饭桶!)
——通过知识共享树立个人品牌。
本文与大家共同讨论与分享ORACLE SQL的一些常用经典查询,欢迎大家补充,同时你认为有那些经典的也可分享出来。在本文中,对每一个问题,你要是认为有什么更好的解决方法也欢迎你及时提出。交流与分享才能共同进步嘛,感谢!
接上一篇:
http://www.cyqdata.cn/cnblogs/article-detail-40122
SQL Server 2008 数据库复制实现数据同步常见问题
操作使用的一些技巧(事务复制类型):
1. 如何修改一个已经发布的表的属性?
将发布所有订阅删除,(发布不用删除),就可以在发布属性的项目中取消表,然后就可以修改该表了,修改后,再将表加入发布内就可以了。
2. 常用的操作界面
(1) 一般都在监视器--发布项目,可以看到快照分发和订阅的即时信息。
(2) 另外一个操作地方是发布的属性,(在属性--状态里可以启动代理)。
(3) 还有一个是
http://www.cyqdata.cn/cnblogs/article-detail-40101
【ORACLE】最简便快速Oracle 9i+PLSQL客户端安装教程
大家在安装像ORACLE这样的大型数据库的时候总是会觉得安装很费劲,3张安装盘就要2G了,安装过程中还要创建配置数据库那花的时间就更长了。
所以除非是要在服务器端建数据库,一般都选择更加方便快速的Oracle客户端+PLSQL安装方式,这里介绍个最简便快速的Oracle 9i+PLSQL客户端安装教程给大家。
1.从网上下载一个Oracle 9i客户端绿色安装包(文件不
http://www.cyqdata.cn/cnblogs/article-detail-40042
MSSQL Server和MySQL的区别
1. MySQL支持enum和set类型,SQL Server不支持; 2. MySQL不支持nchar、nvarchar、ntext类型; 3. MySQL的递增语句是AUTO_INCREMENT,而MS SQL是identity(1,1); 4. MS SQL默认到处表创建语句的默认值表示是((0)),而在MySQL里面是不允许带两括号的; 5. MySQL需要为表指定存储类型; 6
http://www.cyqdata.cn/cnblogs/article-detail-40033
从MySQL复制功能中得到一举三得实惠
在MySQL数据库中,支持单项、异步复制。在复制过程中,一个服务器充当主服务器,而另外一台服务器充当从服务器。如下图所示。此时主服务器会将更新信息写入到一个特定的二进制文件中。并会维护文件的一个索引用来跟踪日志循环。这个日志可以记录并发送到从服务器的更新中去。当一台从服务器连接到主服务器时,从服务器会通知主服器从服务器的日志文件中读取最后一次成功更新的位置。然后从服务器会接收从那个时刻起发生的任何
http://www.cyqdata.cn/cnblogs/article-detail-40015
通过SQL Server 2008数据库复制实现数据库同步备份
SQL Server 2008数据库复制是通过发布/订阅的机制进行多台服务器之间的数据同步,我们把它用于数据库的同步备份。这里的同步备份指的是备份服务器与主服务器进行实时数据同步,正常情况下只使用主数据库服务器,备份服务器只在主服务器出现故障时投入使用。它是一种优于文件备份的数据库备份解决方案。
在选择数据库同步备份解决方案时,我们评估了两种方式:SQL Server 2008的数据库镜像和S
http://www.cyqdata.cn/cnblogs/article-detail-39985
SQLServer的数据库镜像实施笔记
最初在为公司设计SQLServer数据库镜像的时候,首先考虑的是高可用性(三台计算机,一台见证服务器,一台做主数据库,一台做镜像)
在虚拟机环境下部署成功,一切都是那么的完美。 故障转移3秒之内就可以顺利完成。
1.高可用性的实施代码:
主体数据库
/********************************************************
此脚本在主体服务器执行
*****
http://www.cyqdata.cn/cnblogs/article-detail-39936
MSSql技巧之快速得到表的记录总数
判断某一个表的记录总数,对于一个开发者来说是最再常见不过的事,我想大家都常用的作法就是:
select count(*) from 表名;
这种做法没做,我这儿主要说的是效率问题。当一个数据表的记录数不是太多时,这样得到记录总数的效率不是问题。但试想,如果一个表的记录总数超过几百万或者几千万,要再用上面的Sql语句得到表的记录总数,速度会慢得让人难以忍受。
有人会说了,可以一表上
http://www.cyqdata.cn/cnblogs/article-detail-39930
