00:01
好,接下来我们再来说另外一个插件啊,那么这个插件呢,我们叫做诶性能分析插件,呃,那么这条这个插件的话呢,主要就是诶来帮我们去分析一下我们这个每一条搜Q语句啊,它这个执行的时候啊,说花费的一个时间啊呃,那么主要的呃作用呢,就是可以帮我们诶分析到你这个搜QL的这个执行啊,然后呢啊,比如说我们可以给他诶一个具体的时间啊,比如说呢,我发现你这条soql语的执行呢,是超过了我指定的这个时间的,那么我们是可以让它什么直接停止这个运行的,那么这样的话呢,诶我们就有助于去发现一些问题啊,比如说我们正常啊在测试的时候呢,我们发现诶我的一条S口L语句啊,比如说呢,啊,正常情况下,我们在这个五,诶,比如说这个五秒钟之内啊,我们就执行完了,但是呢,呃,我们。使用了这个性能分析机以后呢,我们就给它设置一个五秒,比如说呢,当你出现了这个超过五秒钟还没有执行完的时候呢,诶你就直接停掉就行了,那么这个时候呢,其实大部分情况下,诶,就是已经发现了,已经出现了一些问题了,那我们就可以什么立马让他停止掉啊,就不用什么再去诶浪费更多的时间啊,以导致什么更多的一些问题出现,好那么接下来的话呢,我们就来诶实际上的去研究一下我们的这个诶性能分析插件,好首先的话呢,还是哎把这个。
01:22
给他注册一下,好来到我们的。这个位置啊,我们来去注册一下啊,我们的性能啊分析插件。OK,这也是一个病了啊。好,直接把这个全类名呢,就给它拷贝到这就可以了,呃,然后我们在注册的时候呢,呃,这里面呢,也有一些这个可选的这个参数啊,可以进行设置的,我们可以来看一下我们这个。诶性能分析插件啊,看一下我们这个文档里面,呃,有一个就是设置一个时间啊,这个时间的话就是你去自己指定啊,如果说超过你指定的时间以后呢啊,他就诶停止执行了,另外一个呢,就是因为他还会帮我们去输出这个soql语句啊,他就会问你一下是否帮你去格式化这个SQL语句是吧?好,那么这些的话呢,我们可以啊,诶把它配上啊,我们来试一下啊,比如说呢,我们先把这个哎有一个format。
02:18
诶搜口是吧,哎,VALUE6格式化嘛,那我们就让他这个格式化一下吧,呃,那么另外一个的话呢,就是我们这个时间了啊,这个时间的话叫做什么max ta好呃,那么将来的话呢,我们在这个位置呢,是可以给他一些时间的啊好,暂时的话呢,我们先不给了啊,我们先看一下我们正常的一条soq语句,它在执行的时候呢,诶所花费的一个时间,然后呢,我们再来给大家去演示一下,比如说当它超过我们指定时间的时候呢,诶会出现一个什么样的效果。好把这个写好,那么注册好以后呢,我们还是来到我们的这个测试方法中。好,测试我们的这个啊性能啊。
03:01
诶,性能这个分析插件啊。好性能这个分析插件好测试一下我们的这个,呃,叫做。性能是吧,这个怎么写来着。好拷贝一下了啊。好,加上我们的测试注解,呃,然后在这个里面的话呢,我们就。呃,简单的做一个这个操作吧,啊,比如说我们做一个呃更新的操作吧,是吧,啊我们来呃写一个引employ对象吧。好,我们直接做一个插入操作得了啊,插入操作好employr,然后呢,好set它的这些这个基本的信息啊,比如说set我们的啊。
04:02
他有这个last name是吧,啊名字啊,比如说我们看一下这个数据库里面啊,我们数据库里面应该都是一些这个新的数据了,是吧,好,那我们再去查我一些啊,比如说像我们的这个,呃。啊,小周老师是吧。好,然后呢,诶设置我们这个email啊,比如说这个小折啊。好,还有什么呀,哎,设置它的这个啊。真的啊,这个是一个零好设置我们的这个啊H好H的话就是我们的22岁了行。呃,那么我们把这个。嗯,真的啊,它这个是啊,这个地方我们需要来说一下了啊,因为我们呃,刚刚拷贝的这个工程呢,是它帮我们自动这个生成的啊说他这个真的的话呢,它用成了一个啊字符串的了啊行,那我们在这个写的时候的话,我们就需要把它写成字符串了,好写成一个字符串就可以了,然后接下来的话呢,哎,我们来把这个呢,诶执行一下,我们使用这个employee map呢,诶里面有一个sert,我们直接把这个啊employee对象呢给它放进去就可以了。
05:25
好给它放到这个地方,然后呢,诶我们来看一下他在执行的时候呢,会不会出现一些我们刚刚没有看到的一些效果啊,我们来这个跑一下。OK,这种ne是没问题的啊,然后我们来看一下这个。啊,Conso里面啊,我们来切回来啊好,我们来看一下这个conso里面大家能看到啊,首先呢,上面是我们这个执行的搜Q语句,然后下面的话呢,就是我们这个执行,哎性能分析器呢,帮我们做的这个操作啊说诶我执行的这个soq语句呢,是诶我们这个employ map,人们这个insert,然后呢,这个soq呢,就是你插入了这套这个数据啊,然后呢,有说花费的这个时间呢,诶比如它是一个68啊,然后这个应该是一个毫秒啊,68毫秒,那么这就是对我们的一个soq执行的一个性能分析的一个结果,好,那比如说呢,现在我们同样的让他进行这个数据的插入啊,比如说呢,我们这一次呢,诶把这个时间给它设置上。
06:24
好时间设置上,呃,我们来看一下这个max STEM啊,它是一个long类型的max STEM,那么应该这就是一个毫秒值啊,所以说呢,我们就直接给他,比如说啊给他个五毫秒吧。行吧,诶给他五毫秒,如果你超过五毫秒的话,那么你就不能再去执行了,那么这个时候呢,我们再来做一个测试啊,就是相当于给大家去模拟一下,诶他这个超过我们指定时间以后呢,诶会出现一个什么情况,好,那这个数据的话呢,我们再来改一下吧。啊,比如说我们改成啊,我们的玛莉亚是吧,啊玛莉亚老师。
07:03
好,然后呢,我们再来运行一下。诶这个时候呢,他就报了一个错出来了啊,啊实际上我们这个方法是没有任何问题的啊,那么报的这个异常是什么呢?诶大家来看一下,他说诶你刚才的这个so口尾句呢,出现了问题了,什么问题呢?说你这个so口的执行时间呢,怎么着了,诶太大了是吧?诶执行时间太了,呃,因为我们刚刚能看到的是他在执行一个差物的时候呢,啊大概是这个68毫秒是吧?啊虽然说每次都不一样,但是呢,他也不会夸张到这个五毫秒就让你执行对不对,但是呢,我们。给他是一个五毫秒的,所以说呢,他在这个时间里面呢,肯定是执行不完的,所以说呢,他就会认为,哎,你当前这条so口的执行时间呢,太长了,那么他就会给你什么停止了,那么这就是我们的一个。啊搜啊,就是我们这个执行的这个性能啊,分析插件OK。
08:03
呃,那么呃还有一个需要给大家去说的就是啊这个插件的话呢,我们来看一下啊呃,我们其实也不建议大家呢啊在这个呃生产环境里面去使用啊,我们还是呢,在这个开发环境里面去用就可以了,就是你在啊测试这个环境里面啊,你可以去使用它,然后呢,等到我们这个具体的这个生长环境里面的话呢,诶我们是不建议大家去使用它的啊另外一个的话,就是这个地方设置的这个时间呢啊,你必须是合理的哈,你不能随便呢就给它一个时间,那么这个合理的时间怎么来的呢?啊,那就必须要经过反复的一些测试啊,我们得到一些这个平均的一些值啊,然后呢,给到一个这个合理的数字啊,比如说呢,我查后操作的话呢,诶基本上都是这个60多毫秒好,那么我们就比如说诶,假设我就让你在这个70毫秒之内呢,执行完成,那么这个地方呢,你就给上一个70,你要保证你给的这个时间呢,诶是人家正常情况下,诶执行所要用到的那个时间,所以你不能太夸张了啊,直接给个五毫秒好,那么这个的话。
09:03
啊,简单给大家去介绍一下,那么大家知道这个东西怎么去用啊就可以了。
我来说两句