数据库开发应用
文章平均质量分 52
Edwingu
这个作者很懒,什么都没留下…
展开
-
Access也来查询分析
做过access网站的相信会有一个烦恼,数据库托管在别人的服务器,要操作比较麻烦,想查查数据是否异常也不方便,于是简单地实现一个"查询分析器",方便操作.SQLSelect Case Request("btnLevel")Case "Main"Case Else Call zMain()End Select%>==============================主画面====原创 2008-05-22 12:39:00 · 690 阅读 · 0 评论 -
B-Tree索引[摘]
已经存储着数据的表创建索引时,B-Tree索引的结构构成:1.读取表中的数据并对其进行排序,如果排序的内存需要超过设定,则排序将使用临时表空间。2.开始把排序结果存储在索引段的叶块中,在存储空间到达索引块的PCTFREE之前,该叶块同时也担负着分支块的重任。3.当达到PCTFREE时,需要获得新的块来存储索引行,同时生成一个分支块,在该分支块的头部存储着现有叶块的DBA(Data Block A原创 2011-07-03 00:15:47 · 702 阅读 · 0 评论 -
表连接方式概念以及在执行计划中执行步骤[摘]
嵌套循环连接(Nested Loops Join) 嵌套循环连接的最核心特征就是最先被执行的表的查询范围决定着整体的数据处理量,后来反复执行的连接操作按照随机方式在执行。在嵌套循环连接时,当表中的数据量比较少时比较有效;而当表中的数据量比较大时不仅效率较低,而且所原创 2011-07-26 22:11:59 · 1536 阅读 · 0 评论 -
不建议使用OR的情况
1.连接的表拥有较大的查询范围;2.相同列的OR条件,这种情况下使用IN-List迭代比较有效;3.能够有效缩减查询范围的其他访问路径存在时;4.在使用OR连接的查询条件中,查询条件存在非常大的范围时。原创 2011-08-02 23:42:18 · 788 阅读 · 0 评论 -
排序操作执行计划
SORT(UNIQUE)该操作是指把查询语句的输出结果变成唯一集合的过程。出现该排序的情况有两种,一种是使用了“DISTINCT”,另外一种是子查询以提供者角色向主查询提供其执行结果。 SELECT order_id,order_dateFROM orders原创 2011-08-03 00:29:35 · 4163 阅读 · 0 评论 -
集合操作执行计划[摘]
并集(Union,Union-All)合并集合是指合并不同的查询语句所获得的结果,也就是通过将必须要在同一个查询语句中进行复杂处理的集合分解为多个只需要简单处理的集合。从集合的加工运算上看,这里“复杂”的真正意思是指数据读取的复杂性。如:SELECT order_id,o原创 2011-08-03 22:40:39 · 1082 阅读 · 0 评论 -
不同类型表的索引应用准则[摘]
1.拥有数据量较少的小型表所谓小型表,是指一次I/O可以将表的全部数据块读取到内存中去,即存储表数据的数据块小于DB_FILE_MULTIBLOCK_READ_COUNT参数的设定。由于DBMS提供了多块读的功能,所以如果一次性就可以读取某个表的全部数据块,那么全表扫描与通过原创 2011-08-07 19:41:56 · 858 阅读 · 0 评论 -
离散度和损益分界点
创建索引的目的是快速从整体集合中选择性地读取满足条件的一部分集合。在查询条件中既有对缩减查询范围起主要作用的驱动查询条件,也有单纯起检验作用的过滤查询条件,DBMS将全部满足这两种查询条件的最终结果输出给我们。由此可见,虽然获得的最终结果相同,但是随着查询条件所起作用的不同,内部原创 2011-08-08 22:55:48 · 1844 阅读 · 0 评论 -
组合索引的特征[摘]
当组合索引的第一个索引列(通常称为先导列)没有出现在查询条件中时,一般情况下该索引无法被使用。组合索引最大的缺点就是当只为一部分索引列赋予了查询条件时,或者所使用的比较运算符大部分都是非“=”比较运算符时效率非常低下。 创建战略性的组合索引涉及两个非常重要的方原创 2011-08-11 23:41:04 · 860 阅读 · 0 评论 -
索引选定步骤[摘]
索引并不仅仅是为了特定的应用程序或特定的读取类型而创建的,在搜集读取类型时不仅要考虑现在正在使用的,也要顾及未来有可能出现的读取类型,通过对现有和可能出现的读取类型进行综合性的分析来创建战略性的索引。 按照系统所处阶段的不同可以将索引的构建工作分为两大类:原创 2011-08-16 01:10:29 · 723 阅读 · 0 评论 -
局部范围扫描[摘]
局部范围扫描的条件 通常在SQL中使用了ORDER BY 将无法实现局部范围扫描,但如果优化器选择的驱动索引列与ORDER BY 排序列相同,则可以按照局部范围扫描的方式进行处理。由此可见,并不是所有使用了ORDER BY的SQL都无法实现局部范围扫描,唯独在原创 2011-08-23 22:45:23 · 1023 阅读 · 0 评论 -
[MySQL] 设置时区
想设置MySQL的time_zone为 Asia/Hong_Kong,执行语句:SET time_zone 'Asia/Hong_Kong',报错:Unknown or incorrect time zone:'Asia/Hong_Kong'查资料发现这个时区信息是存储在 mysql库的 time_zone_name表里,用root权限登入查询,发现没有数据。查资料:If you翻译 2012-09-14 17:51:07 · 4844 阅读 · 0 评论 -
哈希聚簇读取(Hash Cluster Access)[摘]
聚簇是通过提高聚簇因子来提高物理I/O效率的有效方法,而哈希聚簇则是通过使用哈希函数所产生的哈希值来实现聚簇的一种类型,即具有相同哈希值的数据被存储在相同的数据块中以便提高聚簇因子。 利用索引从表中读取数据的方式必须要经历两个I/O,即索引I/O和表I/O。但是哈原创 2011-07-25 23:18:07 · 2662 阅读 · 0 评论 -
索引扫描
索引行的存储顺序与表中行的存储顺序之间的相似程度被称为聚簇因子。聚簇因子会随着这种相似程度的不同而不同。 当相类似行的密集程度比较高时,这些数据行就会被密集地存储在相对较少的数据块中,这是聚簇因子比较好的情况。相反,数据行被分散地存储在多个数据块中就是聚簇因子比较原创 2011-07-21 00:10:17 · 2985 阅读 · 0 评论 -
行为不当(Misbehaving)的子查询
子查询有一个不知道是不是bug的设计问题.曾经出过一个错误,幸好在投入使用前发现问题,避免错误. 要在数据库中返回数据:没有销售过商品给会员EDWIN的销售员工.SQL很简单,马上写道:SELECT StaffID,StaffNameFROM dbo.MsStaffWHERE StaffID NOT IN (SELECT StaffID FROM db原创 2008-11-13 22:36:00 · 882 阅读 · 0 评论 -
SQL分组排序
分组排序在实际应用中常会用到.就拿零售系统中常出现的一个功能,找出每个类别(西裤,牛仔裤,鞋,衬衫...)中畅销的前10个款式.假设表 SalesSum : Style,Category,SalesQty 在SQL SERVER 2000下:SELECT *FROM SalesSum AS SWHERE Style IN(SELECT TOP 10 Style原创 2008-11-13 23:19:00 · 7368 阅读 · 0 评论 -
使用派生表避开Union限制
曾经遇过一个问题,是做一个足球资讯网,在Grid中要显示足球比赛预告和结果.要求是:未比赛的部分按时间顺序显示,已经结束的比赛按时间倒序显示.当然,用2个记录集来处理非常简单.当时为了省事,所以通过一句SQL完成这种形式的排序假设表结构为:Tab_Match(MatCh_ID,Local_Team,Away_Team,MatchDate) Select Match_ID,Loc原创 2008-11-25 22:50:00 · 1157 阅读 · 0 评论 -
SQL Server 2005版本简介
1.Enterprise Edition(32位和64位)----企业版环境:只能安装在windows2000高级版和windows server2003专业版及以后的系统上.企业版SQL Server 2005支持多达几十个CPU的多进程处理,而且支持聚类(两个独立服务器之间提供自动接管功能并分担工作量),允许HTTP访问联机分析处理 (OLAP)多维集.企业版支持超大型企业进行联机事务处理转载 2009-05-11 23:11:00 · 1209 阅读 · 0 评论 -
[摘]连接算法伪代码
Nested Join算法:for each row R1 in the outer table for each row R2 in the inner table if R1 joins with R2 return (R1,R2) Left Outer Join算法:for each row R1 in the outer table be转载 2009-09-11 23:03:00 · 1222 阅读 · 0 评论 -
BULK行集提供程序
BULK行集提供程序也可以用于将文件内容加载为SELECT,INSERT或UPDATE语句只能感的LOB标量值(Scalar value).使用 OPENROWSET函数并指定BULK选项,源文件名以及3个选项之一:常规字符数据使用 SINGLE_CLOBUNICODE数据使用 SINGLE_NCLOB二进制数据使用 SINGLE_BLOB *当需要从文件中加载XML数据时,使用SIN原创 2010-01-06 00:59:00 · 906 阅读 · 0 评论 -
SQL Server 2008-----FileStream
FileStream:文件流,为了解决大对象BLOB(Binary Large Objects)的存储问题.对于大对象存储,并且不受2GB的限制.以往有两种方式:(1)存储在数据库里面,这种方式一般使用image字段,或者varbinary(max)来做,好处是可以统一备份,但实际效率较低;(2)存储在文件系统,而数据库中存储文件路径,这种方式数据库压力减轻了,但却不方便统一备份和管理原创 2010-01-06 21:22:00 · 3322 阅读 · 1 评论 -
给堆文件加流水号(MSSQL)
<br />Update T Set T.Id=T.rn From (<br />Select ROW_NUMBER() over(order by TableName.ColumnName) as rn<br />From TableName<br />) T原创 2011-02-24 12:05:00 · 762 阅读 · 0 评论 -
数据库分区
<br /> 在我们不得不对一些数据进行分区的时候,也意味着我们将失去一些操作它们的能力,比如原来你可以通过一条联合查询语句就能轻松搞定的任务,在分区后,你必须先通过用户ID找到正确的分区,然后查到对应的好友ID,再通过好友ID找到对应的分区,从而找到好友信息。但是,你也不必感到沮丧,曾经的联合查询将会随着站点规则的增大变得越来越昂贵,而分区后的查询方式将会更加容易保持相对稳定的开销。原创 2011-03-15 15:51:00 · 633 阅读 · 0 评论 -
反向键索引
反向键索引指原来相连比较紧密的值,强制使其分散在相距比较远的位置上。例如:"11112"和"11113"虽然是连续的值,但是其反转后却变成了"21111"和"31111",这样两个值相差得比较远了,从而达到了分散的目的。 这样做会使得索引中的顺序和存储的原创 2011-07-04 09:53:28 · 1330 阅读 · 0 评论 -
判断优先查询路径的顺序规则
1.使用ROWID读取一行数据;2.依据聚簇连接读取一行数据;3.依据Unique HASH Cluster 读取一行数据;4.依据Unique INDEX读取一行数据;5.CLUSTER连接;6.Non Unique HASH Cluster Key;7.Non Unique原创 2011-07-09 13:34:36 · 818 阅读 · 0 评论 -
[MySQL] 排序不确定性
执行语句:SELECT * FROM tb1 ORDER BY CreateTime DESC LIMIT 0,5;显示数据:ABCDE翻页查询:SELECT * FROM tb1 ORDER BY CreateTime DESC LIMIT 5,5显示数据:DGH===========================================原创 2015-01-27 22:34:02 · 634 阅读 · 0 评论