ORACLE 的DRIVING_SITE HINT 在INSERT AS SELECT中无效

一个朋友问个SQL在本地表连接执行的部分非常快,当执行到最后通过DBLINK连接远程DB表时就很慢(本地执行后记录小于100条然后和远程DB连接。lot@pkgmes lt表1000W 并且有连接字段的PK)。后来在select部分添加hint /*+  DRIVING_SITE (lt) */  后,会把本地表传到远程去比对,子查询速度在1s以内。但是加上前面的insert hint好像是失效了,又变得很慢表和索引的统计信息都是最新的。

其实不光是INSERT AS SELECT中无效CREATE TABLE AS SELECT之类的也会无效

原因:

What happened?  That’s actually expected behaviour, a distributed DML statement must execute on the database where the DML target resides. The DRIVING_SITE hint cannot override this. DRIVING_SITE hint means that entire cursor (not a subquey) is supposed to be mapped remotely. That also means CREATE TABLE cannot be executed remotely (which is also the reason why you get ORA-2021 when you try to accomplish this with an Create Table table_name@remote_database).

So keep in mind when using the DRIVING_SITE hint this is merely for query optimization and not intended for DML or DDL.

解决办法
Create a view on the remote database (A) and then issue the insert
query by selecting from the view@link_name.

 

LoadRunner结果分析

 

本文为技术部朱晖同学做LR压力测试时的原创文章。

针对吞吐率和TPS的关系,这个在结果分析中如何使用,就个人经验和朋友讨论后,提出如下建议指导,欢迎同僚指正。

 

相关定义

  • 响应时间=网络响应时间+应用程序响应时间
  • 响应时间=(N1+N2+N3+N4)+(A1+A2+A3)
  • TPS:Trasaction per second也就是事务数/秒。它是软件测试结果的测量单位。一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数,最终利用这些信息来估计得分。客户机使用加权协函数平均方法来计算客户机的得分,测试软件就是利用客户机的这些信息使用加权协函数平均方法来计算服务器端的整体TPS得分。一般来说系统的TPS取决于系统事务最低处理能力的模块的TPS,经验值10-100
  • HPS:Hit per second也就是点击数/秒,指的是一秒钟的时间内用户对WEB页面的链接、提交按钮等点击的总和。一般与TPS成正比关系,是衡量B/S系统的一个主要指标
  • Throughput/s:吞吐率,指的是每秒系统处理的客户的请求的数量,也可以理解为单位时间内客户接收到的服务的反馈量
  • 吞吐率:测试过程中每秒从服务器返回的字节数。

从定义上来看,如果TPS很小,但是吞吐率比较大,说明服务器的返回的页面文件(字节数)是比较大的,此时根据页面细分图,如果存在页面问题,考虑页面压缩。

还应根据A1—A3,N1—N3实际考虑。

如果A1或者A3比较大,说明webserver处理可能存在问题,如果A2比较大,则说明DBserver处理存在问题,建议sql优化。

当增大系统的压力(或增加并发用户数)时,吞吐率和TPS的变化曲线呈大体一致,则系统基本稳定。

若压力增大时,吞吐率的曲线增加到一定程度后出现变化缓慢,甚至平坦,同时TPS也趋于平坦,查看系统资源使用,如果资源使用率比较低,说明服务器硬件资源不存在问题,查看网络流量,估计网络带宽存在问题。

同理若点击率/TPS曲线出现变化缓慢或者平坦, 点击率(用户每秒发出的请求数)如果在压力增加时,趋于平坦,很可能是服务器响应时间增加,观察服务器资源使用情况,确定是否是服务器问题。

TPS是软件测试结果的测量单位。一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数,最终利用这些信息来估计得分。客户机使用加权协函数平均方法来计算客户机的得分,测试软件就是利用客户机的这些信息使用加权协函数平均方法来计算服务器端的整体TPS得分。

一般的,评价系统性能均以每秒钟完成的技术交易的数量来衡量。系统整体处理能力取决于处理能力最低模块的TPS值。依据经验,应用系统的处理能力一般要求在10-100左右。不同应用系统的TPS有着十分大的差别,一般需要通过性能测试进行准确估算。

经验分析:

1、当增大系统的压力(或增加并发用户数)时,吞吐率和TPS的变化曲线呈正比变化,则系统基本稳定

2、若压力增大时,吞吐率的曲线增加到一定程度后出现变化缓慢,甚至平坦,同时TPS也趋于平坦,查看系统资源使用,如果资源使用率比较高,则说明服务器硬件资源存在问题,需要拓展硬件或者优化应用。反之,则说明服务器硬件资源不存在问题,查看网络流量,估计网络带宽存在问题。

3、点击率/TPS曲线出现变化缓慢或者平坦,很可能是服务器响应时间增加,观察服务器资源使用情况,确定是否是服务器问题或者应用问题

转自:http://tech.weibo.com/archives/1106

转:今天四周年纪念

相恋六年,今天是结婚4周年的日子。
曾经无数次感叹时间飞逝,四年前的今天怀着无法用语言形容的复杂心情领了结婚证。
之后的这四年从来没有记住过这个日子,平平淡淡的,没有留下任何记录。
过日子就是这样,从结婚的那一天开始,就过着柴米油盐酱醋茶的日子,
08年结婚,09年买房,10年怀孕,11年产下了彤彤, 12年买车……
回想起来,我们一起经历了好多看似平淡却不平庸的事情,
一起努力工作、一起还房贷车贷,一起孕育彤彤……
想想,挺美好的,知足常乐。
这些年,我们的幸福,少不了父母伟大的爱,
所以,在我们的纪念日里,不能缺少对父爱和母爱的感恩。
接下来的日子是辛苦并快乐的,
不怕辛苦,因为伴着快乐幸福……
一起继续幸福前行吧,愿真情不变……
愿健康顺利……

产品经理与项目经理

最近在做Gbase测试和使用公司一个内部研发产品的时候,中间有非常多的不顺利,究其原因很明显,开发的时候只关注核心功能的实现,而对于用户体验最重要的界面,提示,日志,操作方法等等反而在开发时候置于次要的,无关紧要的地位

看了一句话觉得挺好:“产品经理的职责是探索(定义)有价值、可用的、可行的产品;而项目经理的职责是关注如何执行计划以按期交付产品。”,我觉得还有一点区别是项目经理对客户负责,产品经理是对用户负责。面向客户!=面向用户。如果产品功能很NB,但是对用户非常不友好,用户体验极差,完全可以想象这是一个项目经理而非产品经理做出来的东西