Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 删除选择查询中不必要的字段 select count(*) from ( SELECT HD.URINO /*HD.URIBRUI, HD.TCODE, HD.SQCODE*/ FROM TV_HD HD)_Java_Hibernate_Postgresql - Fatal编程技术网

Java 删除选择查询中不必要的字段 select count(*) from ( SELECT HD.URINO /*HD.URIBRUI, HD.TCODE, HD.SQCODE*/ FROM TV_HD HD)

Java 删除选择查询中不必要的字段 select count(*) from ( SELECT HD.URINO /*HD.URIBRUI, HD.TCODE, HD.SQCODE*/ FROM TV_HD HD),java,hibernate,postgresql,Java,Hibernate,Postgresql,第2条解释:按ASC/DES部分删除订单(节省7%-10%) 第3条说明:删除聚合函数(平均值、总和、计数等) 第4条解释:使用标准VACCUUM回收死元组占用的存储空间 VACUUM (VERBOSE, ANALYZE) your_table; 在正常的PostgreSQL操作中,被更新删除或废弃的元组不会从其表中物理删除;它们一直存在,直到真空完成。因此,有必要定期对频繁更新的表执行真空,,尤其是 真空有两种变体:标准真空和全真空 真空满可以回收更多磁盘空间,但运行速度要慢得多。此外,真空

第2条解释:按ASC/DES部分删除订单(节省7%-10%)

第3条说明:删除聚合函数(平均值、总和、计数等)

第4条解释:使用标准VACCUUM回收死元组占用的存储空间

VACUUM (VERBOSE, ANALYZE) your_table;
在正常的PostgreSQL操作中,被更新删除或废弃的元组不会从其表中物理删除;它们一直存在,直到真空完成。因此,有必要定期对频繁更新的表执行真空
,尤其是

真空有两种变体:
标准真空
全真空

真空满可以回收更多磁盘空间,但运行速度要慢得多。此外,真空的标准形式可以与生产数据库操作并行运行。(SELECT、INSERT、UPDATE和DELETE等命令将继续正常工作,但在抽真空时,您将无法使用ALTER table等命令修改表的定义。)抽真空满需要对正在处理的表进行独占锁定,因此,不能与表格的其他用途同时进行

因此,一般来说,管理员应努力使用
标准真空
避免真空满

详情如下:


  • 谢谢您的时间。

    +删除查询中的所有杂乱内容,如果您所做的只是计数,则不需要所有这些列。修正格式。另外请注意,索引也用于联接,特别是因为您在这里只进行计数,而不是选择所有值。让我们从这里开始:
    EXPLAIN ANALYZE
    。让我们知道分析结果是什么,然后我们可以讨论优化它。如果不清楚,很难说需要修复什么。@Makoto我添加了“解释-分析”信息并更新了查询。请检查并给我一些建议,如果您还告诉我们这些表格是如何关联的,我会帮上一点忙。从我现在看到的情况来看,那些顺序扫描正在扼杀你的表现;这意味着至少,
    urino
    列会从索引中受益;为什么加入这些栏目是有意义的。它可以提高50%-60%的倍。但我希望它更舒适。你能详细说明一下第二步吗?
    select count(*) from ( SELECT
        HD.URINO
    FROM
        TV_HD HD
        LEFT JOIN TV_SNAPSHOT T ON (HD.URINO = T.URINO AND HD.TCODE = T.TCODE AND T.DELFLG = 0 AND T.SYUBETSU = 1)
        LEFT JOIN TV_SNAPSHOT T_SQ ON (HD.URINO = T_SQ.URINO AND HD.SQCODE = T_SQ.TCODE AND T_SQ.DELFLG = 0 AND T_SQ.SYUBETSU = 3)
        LEFT JOIN (SELECT
                        N.URINO
                FROM
                    TD_MAKKA N
                WHERE
                    N.UPDATETIME IN (
                        SELECT
                            MIN (NMIN.UPDATETIME)
                        FROM
                            TD_MAKKA NMIN
                        WHERE
                            N.URINO = NMIN.URINO
                        AND
                            NMIN.TORIKESHIFLG <> -1 
                    )
            ) NYUMIN
        ON  (HD.URINO = NYUMIN.URINO) 
                LEFT JOIN
                    (
                        SELECT
                            NSUM.URINO
                            ,SUM (COALESCE(NSUM.NYUKIN ,0)) NYUKIN
                            ,SUM (COALESCE(NSUM.NYUKIN ,0)) + SUM (COALESCE(NSUM.TESU ,0)) + SUM (COALESCE(NSUM.SOTA ,0)) SUMNYUKIN
                        FROM
                            TD_MAKKA NSUM
                        GROUP BY
                            URINO
                    ) NYUSUM
                ON  (HD.URINO = NYUSUM.URINO)
                LEFT JOIN
                    (
                        SELECT
                             N.URINO
                        FROM
                            TD_MAKKA N
                        WHERE
                            UPDATETIME = (
                                SELECT
                                    MAX (UPDATETIME)
                                FROM
                                    TD_MAKKA NMAX
                                WHERE
                                    N.URINO = NMAX.URINO
                                AND
                                    NMAX.TORIKESHIFLG <> -1 
                            )
                   ) NYUMAX
                ON  (HD.URINO = NYUMAX.URINO)
    WHERE ( (HD.URIBRUI <> '1') OR ( HD.URIBRUI = '1' AND T_SQ.NYUKOBEFLG = '-1' ) )
     ORDER BY 
     HD.URINO DESC
      ) COUNT_
    
    select count(*) from ( SELECT
        HD.URINO
    FROM
        TV_HD HD
        LEFT JOIN TV_SNAPSHOT T ON (HD.URINO = T.URINO AND HD.TCODE = T.TCODE AND T.DELFLG = 0 AND T.SYUBETSU = 1)
        LEFT JOIN TV_SNAPSHOT T_SQ ON (HD.URINO = T_SQ.URINO AND HD.SQCODE = T_SQ.TCODE AND T_SQ.DELFLG = 0 AND T_SQ.SYUBETSU = 3)
        LEFT JOIN (SELECT
                        N.URINO
                FROM
                    TD_MAKKA N
                WHERE
                    N.UPDATETIME IN (
                        SELECT
                            MIN (NMIN.UPDATETIME)
                        FROM
                            TD_MAKKA NMIN
                        WHERE
                            N.URINO = NMIN.URINO
                        AND
                            NMIN.TORIKESHIFLG <> -1 
                    )
            ) NYUMIN
        ON  (HD.URINO = NYUMIN.URINO) 
                LEFT JOIN
                    (
                        SELECT
                             N.URINO
                        FROM
                            TD_MAKKA N
                        WHERE
                            UPDATETIME = (
                                SELECT
                                    MAX (UPDATETIME)
                                FROM
                                    TD_MAKKA NMAX
                                WHERE
                                    N.URINO = NMAX.URINO
                                AND
                                    NMAX.TORIKESHIFLG <> -1 
                            )
                   ) NYUMAX
                ON  (HD.URINO = NYUMAX.URINO)
    WHERE ( (HD.URIBRUI <> '1') OR ( HD.URIBRUI = '1' AND T_SQ.NYUKOBEFLG = '-1' ) )
    
      ) COUNT_
    
    select count(*) from ( SELECT
        HD.URINO
        /*HD.URIBRUI,
        HD.TCODE,
        HD.SQCODE*/
    FROM
        TV_HD HD)
    
    select count(*) from ( SELECT
        HD.URINO
    FROM
        TV_HD HD
        /*ORDER BY HD.URINO DESC*/)
    
    select count(*) from ( SELECT
        name
        /*MAX(salary),
        AVG(salary)*/
    FROM Emp)
    
    VACUUM (VERBOSE, ANALYZE) your_table;