分类目录

链接

2024 年 5 月
 12345
6789101112
13141516171819
20212223242526
2728293031  

近期文章

热门标签

新人福利,免费薅羊毛

SQL Server索引高级教程15

索引设计是数据库设计中比较重要的一个环节,对数据库的性能其中至关重要的作用,但是索引的设计却又不是那么容易的事情,性能也不是那么轻易就获取到的,很多的技术人员因为不恰当的创建索引,最后使得其效果适得其反,可以说“成也索引,败也索引” 本系列文章来自Stairway to SQL Server Indexes,翻译和整理发布在agilesharp和博客园,希望对广大的技术朋友在如何使用索引上有所帮助。       在本篇文章中,我们在学习了之前的知识之后,推荐14条指导方针。这14条指导方针可以帮助你更好的为数据...

SQL Server 暂无评论 阅读(2,054)

变量表与临时表的效率分析

昨日一朋友发来一段sql的存储过程(如下),让我看看能不能优化一下。 insert @T1 select g_no,co_no,si_no,str_no,sum(ind_qty) as qty from instock_detail where  in_id = @id  group by g_no,co_no,si_no,str_no--?unitstock  -->保存在变量表中 insert @T2 select a.* from  unitstock a,@T1 b where a.g_no =b.g_no  and a.co_no =b.co_no and a.si_no =b.si_no and a.str_no=b.str_nodelete unitstock from @T1 a where unitstock.g_no=a.g_no  and unitstock.co_no =a.co_no and unitstock.si_no=a.si_...

SQL Server 暂无评论 阅读(2,262)

临时表与union all的性能差别

机器:cpu: 2g 内存: 2g 数据库:sql 2005 根据机器配置不同,结果会有不同. 性能测试说明: 1. 数据库服务器重启之后进行查询.即第一次查询的结果. 2. 是对数据库查询的性能比较. 测试情况: 1.在存储过程中使用临时表: (proc1) select top 1000 * into #t1 from somast insert into #t1 select top 100 * from somast select * from #t1 ---删除表数据 TRUNCATE TABLE #t1 --删除临时表 drop table #t1 执行时间为: 1039ms 2. 在存储过程中使用union all: (proc2) select top 1000 * from somast union all select t...

SQL Server 暂无评论 阅读(2,284)

拼sql与存储过程的效率比较

1.关于拼sql语句执行与直接执行存储过程的效率比较 最近对于一个旧的程序的导入进行优化,不过由于这个导入程序原来是直接在程序中使用拼SQL语句执行导入,执行时间较长,一般要十分钟左右。 1)在程序代码中拼sql语句,类似代码如下: System.Data.OleDb.OleDbCommand Command=conn.CreateCommand(); Command.CommandTimeout=0; Command.Transaction=trans; Command.CommandType=CommandType.Text; string sql=""; for(int i=0;i<IWo_Img.Count;i++) { Wo_Img=IWo_Img[i] as EMS_EDI_WO_IMG; Wo_ImgDb.Wo_No=...

MySQL, SQL Server 暂无评论 阅读(1,955)

SQL Server查询性能优化(一)

 SQL Server在堆表中查询数据时,是不知道到底有多少数据行符合你所指定的查找条件,它将根据指定的查询条件把数据表的全部数据都查找一遍。如果有可采用的索引,SQL Server只需要在索引层级查找每个索引分页的数据,再抓出所需要的少量数据分页即可。访问数据表内数以万计的数据分页与只访问少数索引的分页两者间的差异,让索引变成效能调校的最佳工具。  堆表的结果示意图: 堆表内的数据页和行没有任何特定的顺序,也不链接在一起。数据页之间唯一的逻辑连接是记录在 IAM 页内的信息。 假设订单明细表中有10...

SQL Server 暂无评论 阅读(2,193)

SQL Server查询性能优化

 第一:先对 SQL Server 查询性能优化——堆表、碎片与索引(一)中的例一的SET STATISTICS IO之后出现的关键信息如下 表 'T_EPZ_INOUT_ENTRY_DETAIL'。扫描计数 1,逻辑读 4825 次,物理读 6 次,预读 19672 次。 这句解释一下。(有些内容来自网络,有些内部是自己的理解。) SQL SERVER 数据库引擎当遇到一个查询语句时,SQL SERVER数据库引擎会分别生成执行计划(占用CPU和内存资源),同时存储引擎读取 IAM 以生成必须要读取的磁盘地址排序列表。这使 SQL Server 得以将其 I/O 优化为大型有序读取,根据它们在磁...

SQL Server 暂无评论 阅读(2,048)

sql server查询效率之where的位置

  背景就不多介绍了,先建表,插入测试数据吧。字段那些都有注释   --医生表 CREATE TABLE doctor ( id INT IDENTITY(1, 1) , --ID 自增长 docNumber NVARCHAR(50) NOT NULL , --医生编码 NAME NVARCHAR(50) NOT NULL --医生姓名 ) go --插入测试数据 INSERT INTO doctor VALUES ( '007', 'Tom' ) INSERT INTO doctor VALUES ( '008', 'John' ) INSERT INTO doctor VALUES ( '009', 'Jim' ) --号源表(挂号表) CREATE TABLE Nosource ( id INT IDENTITY(1, 1) , docN...

SQL Server 暂无评论 阅读(2,244)

浅谈SQL Server内存管理

简介 理解SQL Server对于内存的管理是对于SQL Server问题处理和性能调优的基本,本篇文章讲述SQL Server对于内存管理的内存原理。   二级存储(secondary storage) 对于计算机来说,存储体系是分层级的。离CPU越近的地方速度愉快,但容量越小(如图1所示)。比如:传统的计算机存储体系结构离CPU由近到远依次 是:CPU内的寄存器,一级缓存,二级缓存,内存,硬盘。但同时离CPU越远的存储系统都会比之前的存储系统大一个数量级。比如硬盘通常要比同时代的内存 大一个数量级。 图1.计算机存储体系   因此对...

SQL Server 暂无评论 阅读(2,172)

SQL SERVER并发的新解决方法

我们可以优化数据库查询,升级数据库服务器,但仍不足以保证应用程序良好的数据库性能。这是因为问题可能产生于系统中并发(指同步)地执行查询操作。实际上,在产品化的数据库系统中,同步执行查询可能引发的问题是再多的查询优化也不能解决的。我们可以有最优化的、执行最快的查询,但是,如果这些查询因为并发问题得不到需要的数据,说明优化工作还做得不够充分。 从根本上讲,我们必须保证数据库查询和执行查询的连接必须能够在并发执行中没有错误(如死锁或更新冲突),并能在可接受的等待时间内得到结果。如...

SQL Server 暂无评论 阅读(2,005)

SQLServer数据页缓冲区详解

SQL Server会把经常使用到的数据缓存在内存里(就是数据页缓存),用以提高数据访问速度。因为磁盘访问速度远远低于内存,所以减少磁盘访问量同样是数据库优化的重要方面。 数据页缓存是SQL Server的内存使用主要的方面,也是占用量最大的部分。在一个稳定的DB Server上,这部分内存使用会相对较稳定。 当数据页缓存区出现内存不足,则会出现查询慢,磁盘忙等等问题。 分析方法:主要是用到性能计数器。    查看如下性能计数器:          1. SQL SERVER:Buffer Manager-Lazy Writes/sec:内存不足则会频繁调用Lazy W...

SQL Server 暂无评论 阅读(1,901)