问题列表 - 第75552页

CURSOR_SHARING,Bind Variable Peeking和Histograms之间的关系

我正在努力确保我对CURSOR_SHARING,绑定变量,绑定变量偷看和直方图之间的关系有一个很好的理解,因为大多数来源涵盖这些主题是不同的部分.

好的,这就是我到目前为止收集的内容,如果我有任何错误,请随意纠正我:

CURSOR_SHARING

1. = EXACT(默认)

  • 1.1.如果SQL语句使用文字:优化器将为每个文字组合生成一个新的执行计划 - 优化器不会用文本替换文字.为每个文字组合生成一个新的父光标.
  • 1.2.如果SQL语句使用绑定变量:第一次运行语句时,优化器将查看绑定变量的值并使用这些特定值生成执行计划 - 所有将来使用这些绑定变量的语句将使用相同的计划(甚至如果计划对于绑定变量的其他值不是最理想的).

    2. = FORCE

  • 2.1.优化器将用绑定替换所有文字 - 并且基本上将使用与场景1.2相同的算法

    3. =类似

  • 3.1.没有直方图:优化器用绑定替换所有文字 - >与1.2和2.1相同的最终效果
  • 3.2.使用histogram:optmizer用绑定替换所有文字,但是每次运行语句时都会查看绑定变量(而不是仅在第一次运行时),以查看是否存在针对该特定绑定值的更优化执行计划变量(基于直方图统计).因此,为优化程序遇到的绑定变量的每个不同值有效地创建新的子游标.

    问题:

    1. 根据我的理解,是不是使用CUSOR_SHARING = EXACT +用绑定变量(1.2)编写SQL语句导致与设置CURSOR_SHARING = FORCE(2.1)完全相同的结果?在这两种情况下,优化器只会在第一次运行时查看绑定变量以生成执行计划,然后重新使用该计划,无论后续运行时绑定变量的值是什么?如果是这样,为什么大多数消息来源建议使用绑定变量?这似乎可能会对性能产生重大影响.

    2. 初始绑定变量中使用的直方图是否为1.2和2.1?在第一次运行SQL语句并且优化器查看绑定变量时,是否使用直方图(如果有)确定是使用全表扫描还是索引扫描?"Oracle Database 11g,性能调优配方"似乎表明直方图仅在CURSOR_SHARING = SIMILAR时相关,但其他一些来源表明直方图也用于所有其他CURSOR_SHARING设置.

    3. 在1.1的情况下,优化器是否会使用直方图来确定最佳执行计划?基本上我只是想知道何时使用直方图.是仅当CURSOR_SHARING = SIMILAR或其他CURSOR_SHARING设置好吗?

    4. Adpative Cursor Sharing - 只有存在绑定变量时才会发生此功能(来自用户查询或系统生成(通过文字替换)).因此它只发生在1.2,2.1,3.1和3.2?但由于SIMILAR已被弃用,这是否意味着ACS仅出现在1.2和2.1中?

    希望我现在离基地不太远,但如果我犯了任何错误,请纠正我

    谢谢!

    编辑:BYS2于2011年12月20日下午12:11

  • oracle performance plsql oracle11g

    11
    推荐指数
    1
    解决办法
    9904
    查看次数

    如何在Java中编写泛型方法以支持比较和算术运算

    我想在java中编写一个泛型方法,如下所示:

    public <T extends Number & Comparable<T>> void test(T[] a){
        T b=a[0];
        if(a[0]>0){
            a[0]*=a[0];
            b+=a[1];
        }
    }
    
    Run Code Online (Sandbox Code Playgroud)

    再后来,我可以提供任一Integer[]Double[]或其他Number亚型的方法.但我上面尝试的代码给了我错误.

    请帮我.谢谢.

    java generics

    5
    推荐指数
    2
    解决办法
    1594
    查看次数

    使用数字字符串快速填充单元格数组

    我想构建一个字符串的单元格数组:{'x_1', 'x_2', ..., 'x_n'}.我知道n提前是什么.我可能会按如下方式构建此单元格数组:

    for i = 1:n
        myCell{i} = sprintf('x_%d', i);
    end
    
    Run Code Online (Sandbox Code Playgroud)

    是否有一种更优雅的方式来做到这一点,即单线?

    matlab

    3
    推荐指数
    1
    解决办法
    4284
    查看次数

    为什么一个int?设置为null有实例属性吗?

    我很好奇以下代码的工作原理(在VS调试器下运行):

    int? x = null;
    null
    x.HasValue
    false
    
    Run Code Online (Sandbox Code Playgroud)

    如果x确实为null,那么什么实例HasValue引用?是HasValue作为扩展方法实现的,还是编译器特殊情况这使它神奇地起作用?

    .net c# nullable

    7
    推荐指数
    2
    解决办法
    808
    查看次数

    PHP 5.3之前的静态继承

    class A
    {
        static $v = "A";
    
        static function echoExtendedStaticVariable() {
            echo self::$v;
        }
    }
    
    class B extends A
    {
        static $v = "B";
        // override A's variable with "B"
    }
    
    Run Code Online (Sandbox Code Playgroud)

    为什么:

    echo B::$v
    
    Run Code Online (Sandbox Code Playgroud)

    打印"A"?

    我如何让它打印"B"?

    在PHP 5.3之前有没有办法做到这一点

    php inheritance static php-5.3

    3
    推荐指数
    1
    解决办法
    225
    查看次数

    是否可以为使用Codeigniter构建的应用程序创建安装程序

    我正在使用Codeigniter构建Web应用程序,该应用程序将在localhost上运行。有什么方法可以为其创建安装程序,以便任何用户都可以像Windows上的常规软件一样安装它(包括XAMPP服务器)吗?

    谢谢 :)

    php codeigniter codeigniter-2

    0
    推荐指数
    1
    解决办法
    2872
    查看次数

    Powershell - 使用参数中包含的括号调用 icacls

    我对 Powershell 还很陌生,但我在 VBScript 和 Python 方面有很多经验。我正在努力成为一名优秀的 Windows 管理员并更多地使用 Powershell。所以,这就是我想要做的:父文件夹包含数十个名为 AD 用户名的子文件夹(例如,Users\username1、Users\username2,其中 Users 是父文件夹)。我想遍历每个文件夹名称,解析出子文件夹名称,并将其传递给 icacls 以根据用户名应用权限。我做了一个多班轮,因为我遇到了管道问题。这是我尝试了几种不同方法后的结果:

    $root_folder = "c:\temp\test"
    $cmd1 = "icacls "
    $cmd2 = " /grant cm\"
    $cmd3 = ":`(OI`)`(CI`)F"
    $paths_collection = get-childitem $root_folder | foreach-object -process {$_.FullName}
    foreach ($path in $paths_collection)
    {$string = $path.split("\");$last = $string[-1];$command = $cmd1 + $path +$cmd2 +$last +$cmd3;invoke-expression $command}
    
    Run Code Online (Sandbox Code Playgroud)

    它最初并不那么粗糙,但是当我遇到问题时,我开始将其分解。

    问题- 在 $cmd3 中,(OI)(CI) 没有完全进入调用表达式。如果我将 $cmd3 更改为 ":F" 它可以工作,但我必须使用有问题的参数设置继承。请帮忙。我一整天都在绞尽脑汁想这个。无法真正找到专门处理此问题的任何内容(尝试反引号,将 $command 引用为“$command”等)

    错误: 术语“OI”未被识别为 cmdlet、函数、脚本文件或可运行程序的名称。检查名称的拼写,或者如果包含路径,请验证路径是否正确,然后重试。在第 1 行字符:56 + icacls C:\temp\test\garthwaitm /grant domain\user1 :(OI …

    powershell powershell-2.0

    3
    推荐指数
    2
    解决办法
    1万
    查看次数

    Htaccess友好的SEO重写使图像停止加载?

    我使用了一个生成器来使我的SEO友好htaccess重写,在这里.

    RewriteRule ^([^/]*)/([^/]*) /detail.php?type=$1&?id=$2 [L]
    
    Run Code Online (Sandbox Code Playgroud)

    输出应该是www.site.com/type/id

    现在,重写工作和页面重定向很好,但网站上的图像不再显示,它们都被打破...... :(图像的URL是正确的,但似乎它只是不想再加载,任何帮助?是否应该有另一个重写规则来取消这个做其他的东西?如果是的话,什么?

    .htaccess seo

    0
    推荐指数
    1
    解决办法
    1301
    查看次数

    如何为Intellij编译器提供更多堆空间?

    当我创建一个Intellij项目时,我不断收到以下内存错误.

    我已经增加了我的堆大小idea.vmoptions:

    -Xms128m
    -Xmx2048m
    -XX:MaxPermSize=1024m
    -XX:ReservedCodeCacheSize=64m
    -ea
    
    Run Code Online (Sandbox Code Playgroud)

    但我仍然得到这个错误:

    Information:The system is out of resources.
    Information:Consult the following stack trace for details.
    Information:java.lang.OutOfMemoryError: Java heap space
    Information:    at com.sun.tools.javac.util.Position$LineMapImpl.build(Position.java:139)
    Information:    at com.sun.tools.javac.util.Position.makeLineMap(Position.java:63)
    Information:    at com.sun.tools.javac.parser.Scanner.getLineMap(Scanner.java:1105)
    Information:    at com.sun.tools.javac.main.JavaCompiler.parse(JavaCompiler.java:512)
    Information:    at com.sun.tools.javac.main.JavaCompiler.parse(JavaCompiler.java:550)
    Information:    at com.sun.tools.javac.main.JavaCompiler.parseFiles(JavaCompiler.java:804)
    Information:    at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:727)
    Information:    at com.sun.tools.javac.main.Main.compile(Main.java:353)
    Information:    at com.sun.tools.javac.main.Main.compile(Main.java:279)
    Information:    at com.sun.tools.javac.main.Main.compile(Main.java:270)
    Information:    at com.sun.tools.javac.Main.compile(Main.java:69)
    Information:    at com.sun.tools.javac.Main.main(Main.java:54)
    Information:    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    Information:    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    Information:    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    Information:    at java.lang.reflect.Method.invoke(Method.java:597)
    Information:    at com.intellij.rt.compiler.JavacRunner.main(JavacRunner.java:71)
    Information:Compilation …
    Run Code Online (Sandbox Code Playgroud)

    intellij-idea

    94
    推荐指数
    4
    解决办法
    9万
    查看次数

    如何打印全浮点数而不是"1.01383e + 007"?

    我想打印掉浮点数的一些大的总和的完整合法值,但是当浮点数足够大时,你会得到诸如"1.01383e + 007"之类的符号.你怎么能得到合法的价值?

    c++ floating-point

    4
    推荐指数
    1
    解决办法
    4086
    查看次数