03 2011 档案
摘要:Tips for Using Performance Monitor CPU CountersBy : Brad McGeheeAug 21, 2005原文: http://www.sql-server-performance.com/tips/performance_monitor_cpu_counter_p1.aspx欢迎转载。转载请保留原作者姓名以及原文地址,并请注明译文出处:http://blog.csdn.net/xiao_hn当使用CPU计数器测量CPU活动时,记住下面是SQL Server中耗用CPU资源最多的进程:上下文切换:当SQL Server在多个CPU之间切换线程时就.
阅读全文
摘要:当一个网站发布以后,你肯定希望你的网站不会遇到任何问题,一直处在正常运行状态之中。现在,我使用下面这些工具来监控“Superexpert.com”网站,确保它一直处在正常运行状态之中。 1.ELMAH ELMAH 是 Error Logging Modules and Handlers for ASP.NET 的缩写。ELMAH可以让你记录下你的网站发生的任何一个错误,在将来,你可以重新检查这些错误。你可以从ELMAH项目的官方网站免费下载ELMAH:http://code.google.com/p/elmah/。 ELMAH既支持ASP.NET Web Forms 又支持 ASP.NET M
阅读全文
摘要:在本文中,将一步步地指导你如何使用Visual Studio 2010和ASP.NET 4的相关知识,打造一个基于HTML5标准规范的视频播放控件,其中你会学习到一些关于HTML 5的知识,还会学到如何使用ASP.NET 4去打造一个服务端的控件。 简介 ASP.NET 4中有大量由微软或第三方提供的控件,但要是这些控件不能满足你的需求,那该怎么办呢?答案是:自己动手去设计! 本教程会指导你如何去开发一个ASP.NET 的服务端控件,你会感受到在开发自己的服务端控件的同时,也提升了你开发的Web应用的质量。我们一般在开发自己的服务端控件的时候,会继承已有的一些服务端控件并添加一些自己的功能。.
阅读全文
摘要:我的数据库很容易死锁,我后来发现是聚集索引引起的,我的索引填充因子是90,后来我把聚集索引去掉,问题就解决了,但是我不明白聚集索引为什么会引起死锁??你的填充因子设置得不对 聚集索引代表了表中记录的存储顺序,所以每次数据的变化,都可能导致表中的数据按照聚集索引重新调整顺序 而填充因子设置为90,这是偏向于减少索引空间占用的做法,这样的做法导致为了减少索引的空间占用,使数据页的空闲空间很小 在向一个已满的索引页添加某个新行时,SQL Server 把大约一半的行移到新页中以便为新行腾出空间。这种重组称为页拆分。页拆分会降低性能并使表中的数据存储产生碎片 因为你这样的填充因子设置,导致数据页空闲空
阅读全文
摘要:在应用系统中,尤其在联机事务处理系统中,对数据查询及处理速度已成为衡量应用系统成败的标准。而采用索引来加快数据处理速度也成为广大数据库用户所接受的优化方法。 在良好的数据库设计基础上,能有效地使用索引是SQL Server取得高性能的基础,SQL Server采用基于代价的优化模型,它对每一个提交的有关表的查询,决定是否使用索引或用哪一个索引。因为查询执行的大部分开销是磁盘I/O,使用索引提高性能的一个主要目标是避免全表扫描,因为全表扫描需要从磁盘上读表的每一个数据页,如果有索引指向数据值,则查询只需读几次磁盘就可以了。所以如果建立了合理的索引,优化器就能利用索引加速数据的查询过程。但是,索引
阅读全文
摘要:TRUNCATE TABLE 和不带 WHERE 的 DELETE 功能是一样的,都是删除表中的所有数据,不过 TRUNCATE TABLE 速度更快,占用的日志更少,这是因为 TRUNCATE TABLE 直接释放数据页并且在事务日志中也只记录数据页的释放,而 DELETE 是一行一行地删除,在事务日志中要记录每一条记录的删除。那么可不可以用 TRUNCATE TABLE 代替不带 WHERE 的 DELETE 呢?在以下情况是不行的:1、要保留标识的情况下不能用 TRUNCATE TABLE,因为 TRUNCATE TABLE 会重置标识。2、需要使用触发器的情况下不能使用 TRUNCAT
阅读全文
摘要:作为一个系统分析师,给出一个业务然后进行分析,将各种可能遇到的情况尽量的列举出来,这是基本素质之一。这不但需要系统分析师有比较严谨的思维,而且还要求其有很丰富的工作经验。假设现在用户有一个“重新打开销售订单”的业务需求,那么在设计、开发这个作业的时候,需要进行哪些限制呢?一、重新打开订单业务背景 在分析某个业务的时候,最重要的就是要了解业务的背景。如果忽略了业务背景,那么设计出来的模型就好像是海市蜃楼,虚无缥缈。为此笔者建议,作为系统分析师,在分析业务需求的时候,一定要讲需求回归到背景中去。或者我们可以把它叫做案例分析题。用户给出的可能是一个知识点,我们要将其组成一个现实的案例。 一般订单的处
阅读全文
摘要:期间虽然说是财务模块需要用到的概念,但是在ERP系统中则是贯穿到所有的ERP模块中。如销售、采购、仓库等等都受到期限制。可见,从系统开发的角度看,期间在ERP系统中也是一个全局化的变量。具体的来说,在设计期间的管理思路时,笔者认为需要从如下几个角度出发。1. 期间并不是以月为单位 从理论上来说,会计期间是以月为单位的。即相关的单据,如收货单或者发料单,必须在每个月月底都要结帐。不过在实际工作中,可能会与这个有差异。如有可能企业并不是以自然月作为期间。笔者以前在给多家企业实施项目的时候,都遇到过类似的问题。他们可能认为,等到每个月月末再结账的话,开发票或者发票验证会来不及。因为这国家都有比较严格
阅读全文
摘要:应收帐款与发票管理是ERP系统开发中的难点之一。因为其跟其他单据不同,具有比较多的综合性。如跟销售订单、发货单、装运凭证、价格表等都息息相关。而且涉及到财务管理方面的知识,更加具有专业性。笔者在这篇文章中,也不能够将所有的知识点都一一讲到。只能够将其中的主要矛盾拉出来,供大家参考。如下图所示,这就是一个应收帐款与发票生成的典型界面。笔者就围绕这个图形来做展开说明。一、应收帐款与发票管理的主要流程 笔者认为,系统分析师在分析开发应收帐款管理与发票管理的时候,一定要对这个业务背后的逻辑有一定的了解。也就是说,一定要先掌握实务处理中的主要环节,然后再来进行分析设计。具体的来说,要掌握以下几个日常的业
阅读全文
摘要:方法1:使用SCOPE_IDENTITY取得刚刚插入的最大流水号 /*建立traddeinfo表各相关索引,注意Trade_id字段必段是identity型*/create table Tradeinfo(Trade_id int identity(1,1),Tdtime datetime Tdname varchar(20))create index idx_trade_id on tradeinfo(trade_id)/*使用scope_identity()中断函数,取得当前脚本范围内最后insert进去的identity值*/declare @mytradeid int set @myt
阅读全文
摘要:报表无疑是ERP系统中用到的最频繁的单据之一。比如每天采购要打印采购明细帐;仓库每天要导出收货或者出货明细;销售每天要打印订单明细等。故报表的设计在ERP系统开发中占据大半江山。不过笔者在实际工作中也发现,有些开发人员在设计ERP报表时,太过于复杂。 有一次,一家企业向我提出了如下需求:他们希望能够出一份报表,报表的内容包括四个部分。一是成品零件的用量、零件的最小采购量等信息;二是当月零件的采购量信息(详细的采购订单等资料);三是当月零件的出库信息(详细的出货记录);四是零件的安全库存信息。然后,根据这些信息计算出当月需要补下的满足安全库存的数量。从这个需求中可以看出,其主要设计到产品基本资料
阅读全文
摘要:物化视图,所谓视图实际上是不存储物理信息的(同表相区别,表存储实际的数据和表的索引信息等。),视图仅仅存储 一个select语句而已。而物化视图就要视图也存储实际的数据,这种实际数据,就是索引。oracle 8imssqlserver2000中引入的。比如oracle的函数索引和sqlserver2000的索引视图都是物化视图。原因是这种视图能够显著提高性能,举个例子 一个表: create table mytable (id int not null,name varchar(20) not null) create index idx_mytable on mytable.name 当我.
阅读全文
摘要:又一篇笔记,以备后用!!需求:有表tb,表有两个字段,分别为:id,value。表中存有数据如下:idvalue 1 a 1 a1 1 a2 2 b 2 b1 3 c1 3 c2 需要通过查询实现:1 a,a1,a2 2b,b1 3c1,c2实现方法: 1、sql2000 使用合并函数: create function f_tb(@id int)returns varchar(8000)asbegin declare @str varchar(8000) set @str = '' select @str = @str + ',' + cast(value as
阅读全文
摘要:1.1前言目前在软件圈内有这么一个现象,就是:DBA不太懂写PL/SQL,而开发人员写的又是五花八门,而且效率不高。如此以来,造成诸多弊端:1.可读性差。读别人写的一个程序花费的时间,比自己写一个程序的花费时间还要长;非但别人看不懂,时间久了连自己也看不懂了。2.可维护性差。程序越写越长,越改越烂,像懒婆娘的裹脚布,又臭又长。3.可移植性差。今天用oracle写一套,明天换成SQL Server的时候再写一套,众多的数据库开发人员在程序的苦海中重复着低级劳动……4.效率和性能差。一个存储过程或SQL执行效率简直可以让你感觉到对时间的绝望,你很快就理解什么是相对论了。1.2编程规范概述 事实上为
阅读全文
摘要:下面再介绍一下数据库锁表及阻塞的原因和处理办法;数据库和操作系统一样,是一个多用户使用的共享资源。当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性。加锁是实现数据库并发控制的一个非常重要的技术。在实际应用中经常会遇到的与锁相关的异常情况,当两个事务需要一组有冲突的锁,而不能将事务继续下去的话,就会出现死锁,严重影响应用的正常执行。在数据库中有两种基本的锁类型:排它锁(Exclusive Locks,即X锁)和共享锁(Share Locks,即S锁)。当数据对象被加上排它锁时,其他的事务不能对它.
阅读全文
摘要:写有效率的SQL查询(I)大型系统的生产环境,一般情况下,我们评价一条查询是否有效率,更多的是关注逻辑IO(至于为什么,回头补一篇)。我们常说,“要建彪悍的索引”、“要写高效的SQL”,其实最终目的就是在相同结果集情况下,尽可能减少逻辑IO。1.1where条件的列上都得有统计信息。没统计信息SQLServer就无法估算不同查询计划开销优劣,而只能采用最稳妥的Scan(不管是table scan还是clustered index scan)。一般情况下我们不会犯这种错误——where条件里不使用非索引列是个常识。索引上的统计信息是无法删除的。1.2尽量不使用不等于(!=)或者NOT逻辑运算符。
阅读全文
摘要:刚开始用SQL Server的时候,我没有用显示执行计划来对查询进行分析。我曾经一直认为我递交的SQL查询都是最优的,而忽略了查询性能究竟如何,从而对“执行计划”重视不够。在我职业初期,我只要能获取数据就很开心,而不去考虑数据是如何返回的,“执行计划”对我的查询作了什么工作。我以为SQL Server会自己去处理查询的性能问题的。作为一个刚进入IT行业或者刚学到新技术的软件工程师,在编写代码前不太可能有时间去学习其实必须掌握的知识。也许这是因为IT行业竞争太激烈的缘故。随着时间的流逝,数据库容量慢慢变大了。终于某天,客户对应用系统的查询性能感到不满意了。他面带怒容来找我,抱怨由于查询太慢,使得
阅读全文
摘要:一、操作符优化1、IN 操作符 用IN写出来的SQL的优点是比较容易写及清晰易懂,这比较适合现代软件开发的风格。但是用IN的SQL性能总是比较低的,从Oracle执行的步骤来分析用IN的SQL与不用IN的SQL有以下区别:ORACLE试图将其转换成多个表的连接,如果转换不成功则先执行IN里面的子查询,再查询外层的表记录,如果转换成功则直接采用多个表的连接方式查询。由此可见用IN的SQL至少多了一个转换的过程。一般的SQL都可以转换成功,但对于含有分组统计等方面的SQL就不能转换了。推荐方案:在业务密集的SQL当中尽量不采用IN操作符,用EXISTS 方案代替。2、NOT IN操作符 此操作是强
阅读全文

浙公网安备 33010602011771号