随笔分类 -  数据库----SqlServer&Oracle

摘要:原文链接:http://blog.btidea.com/article.asp?id=440查询速度慢的原因很多,常见如下几种:    1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷)    2、I/O吞吐量小,形成了瓶颈效应。    3、没有创建计算列导致查询不优化。    4、内存不足    5、网络速度慢    6、查询出的数据量过大(可以采用多次查询,其他的方法降低... 阅读全文
posted @ 2009-07-26 14:47 awp110 阅读(146) 评论(0) 推荐(0)
摘要:问:(1)一次插入多条数据时:CREATE TABLE tb(ID int, 名称 NVARCHAR(30), 备注 NVARCHAR(1000))INSERT tb SELECT 1,'DDD',1UNION ALL SELECT 1,'5100','D'UNION ALL SELECT 1,'5200','E'也可以这样:CREATE TABLE tb1(ID int, 名称 NVARCHAR... 阅读全文
posted @ 2009-07-26 14:31 awp110 阅读(147) 评论(0) 推荐(0)
摘要:先看看下面的表和其中的数据:t_product 图1该表有两个字段:xh和price, 其中xh是主索引字段,现在要得到如下的查询结果: 图2从上面的查询结果可以看出,totalprice字段值的规则是从第1条记录到当前记录的price之和。如第3条记录的totalprice字段的值是10 + 25 + 36 = 71。现在要通过t_product表中的数据生成图2所示的查询结果。可能会有很多读者... 阅读全文
posted @ 2009-07-26 14:27 awp110 阅读(324) 评论(0) 推荐(0)
摘要:在输出统计结果时可能需要将列变成行,而将聚合结果(如count、sum)作为记录的第一行,先看如下的SQL语句:[代码] 在执行上面的SQL语句后,会输出如图1所示的记录集。图1 上图显示的是一个普通的记录集,如果要统计name字段的每个值的重复数,需要进行分组,如下面的SQL如示:[代码] 执行上面的SQL语句后的查询结果如图2所示。图2 如果我们有一个需求,需要如图3所示的聚合结果。图3 从图... 阅读全文
posted @ 2009-07-26 14:26 awp110 阅读(217) 评论(0) 推荐(0)
摘要:最近做一个项目,遇到一个在分组的情况下,将某一列的字段值(varchar类型)连接起来的问题,类似于sum函数对int型字段值求和。 如有一个表t_table,结构和数据如图1 图1 其中要按着xh字段分组,并且将每一组name字段值连接起来。最终结果希望如图2所示 图2表中的th字段值对于每一个xh值是唯一的,也是有限的,也就是说,对于一个xh值,th的值不会太多,如最多是10个(从1至10)。... 阅读全文
posted @ 2009-07-26 14:25 awp110 阅读(392) 评论(0) 推荐(1)
摘要:排名函数是SQL Server2005新加的功能。在SQL Server2005中有如下四个排名函数:1.row_number 2.rank3.dense_rank4.ntile 下面分别介绍一下这四个排名函数的功能及用法。在介绍之前假设有一个t_table表,表结构与表中的数据如图1所示:图1其中field1字段的类型是int,field2字段的类型是varchar一、row_number r... 阅读全文
posted @ 2009-07-26 14:24 awp110 阅读(172) 评论(0) 推荐(1)
摘要:先看如下一个数据表(t_tree): 上图显示了一个表中的数据,这个表有三个字段:id、node_name、parent_id。实际上,这个表中保存了一个树型结构,分三层:省、市、区。其中id表示当前省、市或区的id号、node_name表示名称、parent_id表示节点的父节点的id。 现在有一个需求,要查询出某个省下面的所有市和区(查询结果包含省)。如果只使用SQL语句来实现,需要使用到游标... 阅读全文
posted @ 2009-07-26 14:23 awp110 阅读(174) 评论(0) 推荐(1)
摘要:先看下面一个嵌套的查询语句:select*fromperson.StateProvincewhereCountryRegionCodein(selectCountryRegionCodefromperson.CountryRegionwhereNamelike'C%') 上面的查询语句使用了一个子查询。虽然这条SQL语句并不复杂,但如果嵌套的层次过多,会使SQL语句非常难以阅读和维护。因此,也可以... 阅读全文
posted @ 2009-07-26 14:22 awp110 阅读(158) 评论(0) 推荐(1)
摘要:一.WITH AS的含义 WITH AS短语,也叫做子查询部分(subquery factoring),可以让你做很多事情,定义一个SQL片断,该SQL片断会被整个SQL语句所用到。有的时候,是为了让SQL语句的可读性更高些,也有可能是在UNION ALL的不同部分,作为提供数据的部分。 特别对于UNION ALL比较有用。因为UNION ALL的每个部分可能相同,但是如果每个部分都去执行一遍的... 阅读全文
posted @ 2009-07-26 14:19 awp110 阅读(198) 评论(0) 推荐(0)
摘要:1。在sqlserver中建一个存储过程,代码如下:[代码]通过with as 以提高性能,配合AspnetPager控件来实现分页,适合sql2005。在sql2000中可以这样写[代码] 阅读全文
posted @ 2009-07-26 14:12 awp110 阅读(667) 评论(0) 推荐(1)
摘要:【转载】1. 案例起因  公司门店应用程序每天都要出一份报表,用来统计所有商品当天的期初库存数量、入库数量、出库数量  及当天的期末库存数量。运行半年以后,这份报表运行越来越慢,到现在,每次运行该报表显示当天数据时需要近20秒的时间。于是开发人员找到我,希望我看看,是不是可以使该报表运行的时间更短。  该报表就是一段SQL语句,主要由三部分组成,第一部分是计算每个商品的期初数量,第二部分是计算每个... 阅读全文
posted @ 2009-07-26 13:33 awp110 阅读(226) 评论(0) 推荐(0)
摘要:[代码] 阅读全文
posted @ 2009-07-26 13:28 awp110 阅读(138) 评论(0) 推荐(0)
摘要:SQL游标的使用(转载) 一、游标包括两个部分:1、游标结果集 由定义该游标的select语句返回的行的集合2、游标位置 指向这个集合中某行的指针二、游标处理过程:使用declare 语句声明使用open语句打开使用fecth语句从游标中提取数据判断是否为空,为空no则返回上一步,不为空yes使用close关闭使用deallocate释放 1、声明游标:declare 游标名 [insensiti... 阅读全文
posted @ 2009-07-21 19:26 awp110 阅读(172) 评论(0) 推荐(0)
摘要:[代码]用来实现存储过程中对 select数据集的 读取 阅读全文
posted @ 2009-07-17 16:50 awp110 阅读(102) 评论(0) 推荐(0)
摘要:1.作用:为提高服务器性能提供充分的依据评估用户活动解决或者预防问题2.步骤:确定监视目标确实监视工具标示要监视的组件选择监视组件的度量指标监视服务器分析数据服务器监视在服务器层次监视sql server服务器的性能,主要需要关注3个方面的信息:磁盘活动、CPU使用情况喝内存使用情况。1.监视方法与工具系统监视器,系统监视器一方面可用于实时监视和查看所选择的计数器的值,另一方面也可用于查看制定监视... 阅读全文
posted @ 2009-06-27 01:17 awp110 阅读(175) 评论(0) 推荐(0)
摘要:[代码] 阅读全文
posted @ 2009-05-21 10:41 awp110 阅读(153) 评论(0) 推荐(0)
摘要:SQLSERVER2005登录时出错,这个问题我已经纠结好几天啦用户"sa"登陆失败,SQL Server错误:18456按照网上的资料设置了一下,果然好了.处理步骤1 用Windows身份登陆2右键点击你的实例->属性->安全性->服务器身份登陆选择SQL Server和Windows身份验证登陆模式.重启SQL3 用Windows身份登陆,看看安全性->登录名->... 阅读全文
posted @ 2009-05-14 11:04 awp110 阅读(172) 评论(0) 推荐(0)
摘要://子节点 Expo.Database.SqlGen mycmd = new Expo.Database.SqlGen(); protected void Page_Load(object sender, EventArgs e) { IList<string> path = new List<string>(); GetPath(2, ref path); foreac... 阅读全文
posted @ 2009-05-13 11:08 awp110 阅读(382) 评论(0) 推荐(0)
摘要:--建立測試環境Create Table A(IDInt,fatherIDInt,NameVarchar(10))Insert A Select 1, NULL, 'tt'Union All Select 2, 1, 'aa'Union All Select 3, 1, 'bb'Union All Select 4, 2, 'cc'Union All Select 5, 2, 'gg'Union ... 阅读全文
posted @ 2009-05-11 07:08 awp110 阅读(1746) 评论(2) 推荐(0)
摘要:函数CREATE FUNCTION GetChildren (@id varchar(20))RETURNS @t table(id varchar(20)) AS BEGIN insert @t select subid from tree where parentid = @id while @@rowcount > 0 insert @t select a.subid from tr... 阅读全文
posted @ 2009-05-11 07:03 awp110 阅读(467) 评论(0) 推荐(0)