如何记录SELECT和SORT等UniVerse动词的速度?

时间:2016-02-09 21:47:56

标签: universe u2 rocket-u2

我记得在某个地方看到一篇文章概述了一种巧妙的方法,可以在自定义基本程序中包含一个UniVerse动词,如SELECT,以便记录一些指标,如经过时间。如果您熟悉该文章,那么简单的答案就是分享该链接。

否则,我感谢您可能分享的任何示例代码,这些代码可以说明创建此类包装器的正确方法。

我想将一些数据写入文件,并捕获诸如用户,涉及的文件,用于执行选择的时间量以及SELECT语句中包含的任何短语之类的内容。我计划将此数据发送到另一个系统进行分析和报告,以便我们可以更好地可视化各种选择的执行情况。

感谢您的时间,我期待与您讨论解决方案!

UPDATE!

在看到范的回答之后,我必须澄清一点,我最感兴趣的是记录声明的处理时间,并纯粹为记录目的收集其他一些信息。我的目标是让它变得透明,以便我最终破坏一切或任何东西。

我的逻辑更像是这样:

  
      
  • 语句被触发,包装器程序记录当前时间。
  •   
  • 普通的vanilla句子由包装器执行。
  •   
  • 选择完成后,包装器会再次记录当前时间并记录开始时间的差异。
  •   
  • 当我们进入此处时,请使用各种SYSTEM(x)和/或@值来捕获用户名和可能的记录数。
  •   
  • 使用一些逻辑来解析语句并记录其他有趣的花絮。
  •   
  • 将有趣的值写入一个日志文件,并使用递增ID。
  •   
  • 用户或proc是不经意的,并且像往常一样以选择列表结束(不知何故......在这里插入魔法)
  •   
  • 其他一些解耦流程会定期将每条记录都提供给报告系统。
  •   

这更有意义吗?

2 个答案:

答案 0 :(得分:1)

我会告诉我,我会因为3个原因在生产系统上试图做任何事情而感到害怕。

  1. SELECT在很多地方使用,如果你有很多幻影和用户同时运行的东西导致...这很快就会成为I / O问题...
  2. 根据系统找到的方式以不会引起锁定或覆盖问题的方式有意义地组织数据的文件数量将是一个巨大的挑战。
  3. SELECT具有选择样式用法和SQL样式用法,它们的行为不相同。
  4. 这一切都很骇人听闻。
  5. 计算是为了懦夫。
  6. 那就是说,你几乎可以取代VOC中的任何一个词。您可以将SELECT的VOC条目复制到SELECT.BASE中,然后将其替换为您自己的编目SELECT,其中您可以捕获命令行参数。

    SENTENCE       = @COMMAND
    FILE.NAME      = FIELD(SENTENCE,' ',2)
    CONDITIONS     = FIELD(SENTENCE,' ',3,999)
    NEW.STMT       = "SELECT.BASE ":FILE.NAME:" ":CONDITIONS
    

    然后,您可以在执行NEW.STMT之前或之后执行任何类型的处理。

    我不知道这会破坏什么,所以请自担风险。

答案 1 :(得分:0)

我之前遇到的示例程序是在Rocket Software的GitHub repos multivalue-lab之一。那里的程序叫VERBTIMER

然而,该程序还展示了我在自己的实验中发现的错误,其中忽略了任何先前的活动选择列表。

我在GitHub上打开了issue,如果找到解决方案,我会更新此帖子。