数据库
文章平均质量分 75
早晨的阳光Sunrise
这个作者很懒,什么都没留下…
展开
-
对数据库索引使用的思考(未完成)
索引的使用有利有弊,需要总结一下,故找了一下资料总结了一下。 定义(部分定义来源于 SQL Server 联机丛书):索引:与书中的索引一样,数据库中的索引使您可以快速找到表或索引视图中的特定信息。索引包含从表或视图中一个或多个列生成的键,以及映射到指定数据的存储位置的指针。聚集索引:聚集索引基于聚集索引键按顺序排序和存储表或视图中的数据行。聚集索引按 B 树索引结构实现,B 树索原创 2010-05-13 15:13:00 · 778 阅读 · 0 评论 -
数据库中排序 vs 应用层中排序
通常来说,执行效率需要考虑CPU、内存和硬盘等的负载情况,假定数据库服务器和应用层服务器都已经按照最适合的方式来配置,那么系统的可伸缩性(Scalability)和用户感知性能(User-perceived Performance)是我们追求的主要目标。在实际运行中,数据库中数据往往以HASHtables、BTREE等方式存贮于内存,操作速度很快;同时INDEX已经进行了一些预排序;很多应用中,数据库排序是首选。而在应用层中排序,也必然在内存中进行,与数据库相比具有如下优势:考虑整个网站的可伸缩性和整体性能原创 2010-07-31 11:38:00 · 1983 阅读 · 0 评论 -
确定SQL Server填充因子(FILLFACTOR)值的方法
引言设置适当的填充因子用于设置每个索引页的剩余空间,从而降低页拆分的数量。填充因子取值从1到100,表示索引页数据填充的空间百分比。填充因子在索引创建的时候用到。如果表内数据是只读的(或者很少被更改),可以将填充因子设置为100。考虑到页面拆分问题,如果保留太多的剩余空间,SQL Server需要将相同数量的数据放置到更多的页面上。填充因子越小(例如,40% 到 50%),那么就需要更多的存储空间,当完成查询时,索引也需要scan或者seek更多的页面。填充因子越大(例如,90% 到 100%),那么需转载 2010-06-09 10:51:00 · 3644 阅读 · 0 评论 -
如何让你的SQL运行得更快!
聚集索引,表中存储的数据按照索引的顺序存储,检索效率比普通索引高,但对数据新增/修改/删除的影响比较大非聚集索引,不影响表中的数据存储顺序,检索效率比聚集索引低,对数据新增/修改/删除的影响很小如何让你的SQL运行得更快 ---- 人们在使用SQL时往往会陷入一个误区,即太关注于所得的结果是否正确,而忽略了不同的实现方法之间可能存在的性能差异,这种性能差异在大型的或是复杂的数据库环境中(如联机事务处理OLTP或决策支持系统DSS)中表现得尤为明显。笔者在工作实践中发现,不良的SQL往往来自于不恰当的索引转载 2010-06-09 15:23:00 · 597 阅读 · 0 评论 -
MS SQL Server 数据库日期时间函数的应用
因为实际应用中经常会用到日期时间,所以需要总结一下实际的应用。在网上找了一些并总结了如下的一些应用: 1、定义日期时间变量,并设置日期时间 DECLARE @Date datetime; -- 定义日期时间变量SET @Date = '2010-8-10'; -- 设置日期SET @Date = '10:18:20'; -- 设置时间SET @Date = '2010-8-10 10:18:20.123'; -- 设置日期和时间2、获取当前日期时间,获取第一原创 2010-08-10 10:16:00 · 1276 阅读 · 0 评论 -
常用的 SQL Server 数据库命令
因为经常需要进行一些数据库的维护工作,所以这里记录一下一些常用的 SQL Server 数据库命令,方便自己查阅。 1、截断日志并收缩数据库 BACKUP LOG 数据库名 WITH NO_LOGDBCC SHRINKDATABASE(数据库名)2、循环执行DECLARE @i AS int;SET @i = 0;WHILE @i原创 2010-12-29 09:10:00 · 650 阅读 · 0 评论 -
对逻辑主键、业务主键和复合主键的思考
这几天对逻辑主键、业务主键和复合主键进行了一些思考,也在网上搜索了一下相关的讨论,相关讨论可以看最下面的参考链接。下面是自己基于 SQL Server 做的一些总结,其他数据库(Oracle、MySQL、DB2、......)应该也类似吧。这个只是自己一时的思考,如有不当请告知,重新思考后再修正。 定义(部分定义来源于 SQL Server 联机丛书):主键(PRIMARY KEY原创 2010-05-10 14:54:00 · 20502 阅读 · 3 评论 -
极具威力的 DBPROP_CLIENTCURSOR
今天做了一个测试,结果令我非常吃惊,没想到会有这么大的差异。原本是想测试 C# 的 ADO.NET 的性能和 C++ 的 OLEDB 的性能差异如何的。原以为应该是 OLEDB 优胜于 ADO.NET 的,但是结果却相反。数据库是 SQL Server 2005 的,数据原创 2011-09-23 18:25:48 · 697 阅读 · 0 评论 -
查找和删除重复记录
在数据库维护中,有时候会需要查找重复的记录,有时候会需要删除多余的重复记录,下面总结了一些方法,在实际应用中可以根据不同情况进行使用。首先定义一下范例表如下:Table1 = ID + Column1 + Column2,其中 ID 可能为主键。根据重复的不同情况可以有不同的查找和删除的方法:1、ID 相同-- 查找重复 ID 记录SELECT * FROM dbo.Table1原创 2010-08-11 15:47:00 · 478 阅读 · 0 评论