精华内容
下载资源
问答
  • sql临时表的优点

    2019-10-07 04:26:09
    2:临时表的操作不会写入日志文件;好处:提高了 临时表操作的速度;坏处: 数据一旦丢失,无法恢复。 3: 临时表只允许当前会话框进行访问,因此不会担心死锁 的问题。 转载于:...

    1: 临时表来组织数据,更高效的查询速度。

    2:临时表的操作不会写入日志文件;好处:提高了 临时表操作的速度;坏处: 数据一旦丢失,无法恢复。

    3: 临时表只允许当前会话框进行访问,因此不会担心死锁 的问题。

    转载于:https://www.cnblogs.com/sunzhenyong/p/3557698.html

    展开全文
  • Oracle 临时表临时表空间、临时表空间组用法、区别及表空间组优点临时表Oracle中的临时表是全局,需要在数据库设计时创建完成,而不是程序使用时。每个登陆用户都使用这一个相同的临时表,但互相之间看不到彼此...

    Oracle 临时表、临时表空间、临时表空间组用法、区别及表空间组优点

    临时表

    Oracle中的临时表是全局的,需要在数据库设计时创建完成,而不是程序使用时。每个登陆用户都使用这一个相同的临时表,但互相之间看不到彼此的数据,也就是说临时表是会话独立的。并且不产生日志。
    Oracle 的临时表分为事务型和会话型。
    事务型临时表就是指在事务处理过程中插入的记录只在事务提交或回滚之前有效,一旦事务完成,表中的记录便被自动清除。
    会话型临时表指临时表中的数据在本次会话期间一直有效,直到会话结束。会话结束后表中针对此次会话的数据会自动清空。

    创建:
    CREATE GLOBAL TEMPORARY TABLE  tmp_test1 (id int,name varchar2(10)) ON COMMIT PRESERVE(DELETE) ROWS ;

    临时表空间
    temporary tablespace是用户在做数据排序都操作时临时存放的表空间
    查询 v$tempfile\ dba_temp_file

    每个用户都有一个默认临时表空间,在创建用户时如果没指定将使用oracle 数据库设置的默认临时表空间,查询方法是:
    select property_name,property_value from database_properties where property_value=‘TEMP’

    创建例子:
    create temporary tablespace test2 tempfile ‘/u01/app/oracle/oradata/ORCL/datafile/temp2.tmp’ size 50m autoextend on;

    设为数据库默认:

    SQL> aLTER DATABASE DEFAULT TEMPORARY TABLESPACE test2;

    Database altered.

    设置后以前未指定的用户临时表空间都为最新


    临时表空间组

    在oracle11g以后,用户可以创建临时表空间组,一个临时表空间组中可以包含一个或多个临时表空间。
    临时表空间组中必须由至少一个临时表空间组成,并且无明确的最大数量限制。
    如果删除一个临时表空间组的所有成员,该组也自动被删除。
    临时表空间的名字不能与临时表空间组的名字相同。
    在给用户分配的一个临时表空间时,可以使用临时表空间组的名字代替实际的临时表空间名;在给数据库分配默认临时表空间时,也可以使用临时表空间组的名字。

    创建临时表空间组:
    临时表空间组不需要特别创建,只需要在创建临时表空间时,
    使用teblespace group语句为其指定一个组即可。

    查看临时表空间组信息:
    数据字典dba_tablespace_grops

    移动临时表空间:
    使用alter tablespace语句

    临时表空间组是在创建临时表空间时通过指定group字句创建的,如果删除组中的全部临时表空间,那么这个组也将消失。

    创建例子:
    SYS@PROD1 > select * from dba_tablespace_groups;
    GROUP_NAME                     TABLESPACE_NAME
    ------------------------------ ------------------------------
    GROUP01                        TEMP2

    SYS@PROD1 > alter tablespace temp tablespace group group01;
    Tablespace altered.
    SYS@PROD1 > select * from dba_tablespace_groups;
    GROUP_NAME                     TABLESPACE_NAME
    ------------------------------ ------------------------------
    GROUP01                        TEMP
    GROUP01                        TEMP2

    SYS@PROD1 > select * from dba_temp_files;
    FILE_NAME                                             FILE_ID TABLESPACE_NAME                  BYTES     BLOCKS STATUS  RELATIVE_FNO AUT   MAXBYTES   MAXBLOCKS INCREMENT_BY USER_BYTES USER_BLOCKS
    -------------------------------------------------- ---------- ------------------------------ ---------- ---------- ------- ------------ --- ---------- ---------- ------------ ---------- -----------
    /u01/app/oracle/oradata/PROD/temp01.dbf                     1 TEMP                             20971520       2560 ONLINE           1 YES 3.4360E+10    4194302           80   19922944     2432
    /u01/app/oracle/oradata/PROD/temp02.dbf                     2 TEMP2                            20971520       2560 ONLINE           1 NO           0          0            0   19922944     2432

    SYS@PROD1 > /

    FILE_NAME                                             FILE_ID TABLESPACE_NAME                     BYTES     BLOCKS STATUS  RELATIVE_FNO AUT   MAXBYTES  MAXBLOCKS INCREMENT_BY USER_BYTES USER_BLOCKS
    -------------------------------------------------- ---------- ------------------------------ ---------- ---------- ------- ------------ --- ---------- ---------- ------------ ---------- -----------
    /u01/app/oracle/oradata/PROD/temp01.dbf                     1 TEMP                             20971520       2560 ONLINE            1 YES 3.4360E+10     4194302           80   19922944        2432
    /u01/app/oracle/oradata/PROD/temp02.dbf                     2 TEMP2                            20971520       2560 ONLINE            1 NO            0          0            0   19922944        2432

    使用临时表空间组,有如下的优点:
    1.避免当临时表空间不足时所引起的磁盘排序问题;
    2.当一个用户同时有多个会话时,可以使得它们使用不同的临时表空间;
    3.使得并行的服务器在单节点上,能使用多个临时表空间 .
    展开全文
  • 关于oracle with table as 创建临时表的用法示例 1、with table as 相当于建个临时表(用于一个语句中某些中间结果放在临时表空间的SQL语句),Oracle 9i 新增WITH语法,可以将查询中的子查询命名,放到SELECT语句...

    关于oracle with table as 创建临时表的用法示例

    1、with table as 相当于建个临时表(用于一个语句中某些中间结果放在临时表空间的SQL语句),Oracle 9i 新增WITH语法,可以将查询中的子查询命名,放到SELECT语句的最前面。


    语法就是
    with tempname as (select ....)
    select ...

    例子:
    with t as (select * from emp where depno=10)
    select * from t where empno=xxx

    with
    wd as (select did,arg(salary) 平均工资 from work group by did),
    em as (select emp.*,w.salary from emp left join work w on emp.eid = w.eid)
    select * from wd,em where wd.did =em.did and wd.平均工资>em.salary;



    2、何时被清除

    临时表不都是会话结束就自动被PGA清除嘛! 但with as临时表是查询完成后就被清除了!

    注释:

    临时表分类

    ORACLE临时表有两种类型:会话级的临时表和事务级的临时表。

    1)ON COMMIT DELETE ROWS

    它是临时表的默认参数,表示临时表中的数据仅在事物过程(Transaction)中有效,当事物提交(COMMIT)后,临时表的暂时段将被自动截断(TRUNCATE),但是临时表的结构 以及元数据还存储在用户的数据字典中。如果临时表完成它的使命后,最好删除(drop命令)临时表,否则数据库会残留很多临时表的表结构和元数据。

    2)ON COMMIT PRESERVE ROWS

    它表示临时表的内容可以跨事物而存在,不过,当该会话结束时,临时表的暂时段将随着会话的结束而被丢弃,临时表中的数据自然也就随之丢弃。但是临时表的结构以及元数据还存储在用户的数据字典中。如果临时表完成它的使命后,最好删除(drop命令)临时表,否则数据库会残留很多临时表的表结构和元数据。


    23:48:58 SCOTT@orcl> with aa as(select * from dept)
    23:57:58   2  select * from aa;

        DEPTNO DNAME          LOC
    ---------- -------------- -------------
            10 ACCOUNTING     NEW YORK
            20 RESEARCH       DALLAS
            30 SALES          CHICAGO
            40 OPERATIONS     BOSTON

    已用时间:  00: 00: 00.12
    23:58:06 SCOTT@orcl> select * from aa;
    select * from aa
                  *
    第 1 行出现错误:
    ORA-00942: 表或视图不存在


    已用时间:  00: 00: 00.02
    23:58:14 SCOTT@orcl>

    3、就这一功能来说,子查询就可以达到啊,为什么要用with呢? 用with有什么好处?
    都能写,但执行计划不同的。当有多个相似子查询的时候,用with写公共部分,因为子查询结果在内存临时表中,执行效率当然就高啦~

    4、问题:
    有张表数据如下:
    aaa 高
    bbb 低
    aaa 低
    aaa 高
    bbb 低
    bbb 高
    需要得到下列结果,
      高 低
    aaa 2 1
    bbb 1 2
    问 SQL 语句怎么写??

    答案:
    with tt as (
      select 'aaa' id, '高' value from dual union all
      select 'bbb' id, '低' value from dual union all
      select 'aaa' id, '低' value from dual union all
      select 'aaa' id, '高' value from dual union all
      select 'bbb' id, '低' value from dual union all
      select 'bbb' id, '高' value from dual)
    SELECT id,
           COUNT(decode(VALUE, '高', 1)) 高,
           COUNT(decode(VALUE, '低', 1)) 低
      FROM tt
     GROUP BY id;
    ===================================================================
    扩展:
    Oracle9i新增WITH语法,可以将查询中的子查询命名,放到SELECT语句的最前面。

      一个简单的例子:

    SQL> WITH
    2 SEG AS (SELECT SEGMENT_NAME, SUM(BYTES)/1024 K FROM USER_SEGMENTS GROUP BY SEGMENT_NAME),
    3 OBJ AS (SELECT OBJECT_NAME, OBJECT_TYPE FROM USER_OBJECTS)
    4 SELECT O.OBJECT_NAME, OBJECT_TYPE, NVL(S.K, 0) SIZE_K
    5 FROM OBJ O, SEG S
    6 WHERE O.OBJECT_NAME = S.SEGMENT_NAME (+)
    7 ;
    OBJECT_NAME OBJECT_TYPE SIZE_K
    ------------------------------ ------------------- ----------
    DAIJC_TEST TABLE 128
    P_TEST PROCEDURE 0
    IND_DAIJC_TEST_C1 INDEX 128

      通过WITH语句定义了两个子查询SEG和OBJ,在随后的SELECT语句中可以直接对预定义的子查询进行查询。从上面的例子也可以看出,使用WITH语句,将一个包含聚集、外连接等操作SQL清晰的展现出来。

      WITH定义的子查询不仅可以使查询语句更加简单、清晰,而且WITH定义的子查询还具有在SELECT语句的任意层均可见的特点。

      即使是在WITH的定义层中,后定义的子查询都可以使用前面已经定义好的子查询:

    SQL> WITH
    2 Q1 AS (SELECT 3 + 5 S FROM DUAL),
    3 Q2 AS (SELECT 3 * 5 M FROM DUAL),
    4 Q3 AS (SELECT S, M, S + M, S * M FROM Q1, Q2)
    5 SELECT * FROM Q3;
    S M S+M S*M
    ---------- ---------- ---------- ----------
    8 15 23 120

      利用WITH定义查询中出现多次的子查询还能带来性能提示。Oracle会对WITH进行性能优化,当需要多次访问WITH定义的子查询时,Oracle会将子查询的结果放到一个临时表中,避免同样的子查询多次执行,从而有效的减少了查询的IO数量。

    WITH能用在SELECT语句中,UPDATE和DELETE语句也是支持WITH语法的,只是需要版本支持:
    http://www.oracle.com.cn/viewthread.php?tid=83530

    =============================================================================
    with
    sql1 as (select to_char(a) s_name from test_tempa),
    sql2 as (select to_char(b) s_name from test_tempb where not exists (select s_name from sql1 where rownum=1))
    select * from sql1
    union all
    select * from sql2
    union all
    select 'no records' from dual
           where not exists (select s_name from sql1 where rownum=1)
           and not exists (select s_name from sql2 where rownum=1);

    再举个简单的例子

    with a as (select * from test)

    select * from a;

    其实就是把一大堆重复用到的SQL语句放在with as 里面,取一个别名,后面的查询就可以用它

    这样对于大批量的SQL语句起到一个优化的作用,而且清楚明了


    这是搜索到的英文文档资料(说得比较全,但是本人英文特菜,还没具体了解到,希望各高手具体谈谈这个with
    as 的好处)

    About Oracle WITH clause
    Starting in Oracle9i release 2 we see an incorporation of the SQL-99 “WITH clause”, a tool for materializing subqueries to save Oracle from having to re-compute them multiple times.

    The SQL “WITH clause” is very similar to the use of Global temporary tables (GTT), a technique that is often used to improve query speed for complex subqueries. Here are some important notes about the Oracle “WITH clause”:

       ? The SQL “WITH clause” only works on Oracle 9i release 2 and beyond.
       ? Formally, the “WITH clause” is called subquery factoring
       ? The SQL “WITH clause” is used when a subquery is executed multiple times
       ? Also useful for recursive queries (SQL-99, but not Oracle SQL)

    To keep it simple, the following example only references the aggregations once, where the SQL “WITH clause” is normally used when an aggregation is referenced multiple times in a query.
    We can also use the SQL-99 “WITH clause” instead of temporary tables. The Oracle SQL “WITH clause” will compute the aggregation once, give it a name, and allow us to reference it (maybe multiple times), later in the query.

    The SQL-99 “WITH clause” is very confusing at first because the SQL statement does not begin with the word SELECT. Instead, we use the “WITH clause” to start our SQL query, defining the aggregations, which can then be named in the main query as if they were “real” tables:

    WITH
    subquery_name
    AS
    (the aggregation SQL statement)
    SELECT
    (query naming subquery_name);

    Retuning to our oversimplified example, let’s replace the temporary tables with the SQL “WITH  clause”:

    WITH
    sum_sales AS
      select /*+ materialize */
        sum(quantity) all_sales from stores
    number_stores AS
      select /*+ materialize */
        count(*) nbr_stores from stores
    sales_by_store AS
      select /*+ materialize */
      store_name, sum(quantity) store_sales from
      store natural join sales
    SELECT
       store_name
    FROM
       store,
       sum_sales,
       number_stores,
       sales_by_store
    where
       store_sales > (all_sales / nbr_stores)
    ;

    Note the use of the Oracle undocumented “materialize” hint in the “WITH clause”. The Oracle materialize hint is used to ensure that the Oracle cost-based optimizer materializes the temporary tables that are created inside the “WITH” clause. This is not necessary in Oracle10g, but it helps ensure that the tables are only created one time.

    It should be noted that the “WITH clause” does not yet fully-functional within Oracle SQL and it does not yet support the use of “WITH clause” replacement for “CONNECT BY” when performing recursive queries.

    To see how the “WITH clause” is used in ANSI SQL-99 syntax, here is an excerpt from Jonathan Gennick’s great work “Understanding the WITH Clause” showing the use of the SQL-99 “WITH clause” to traverse a recursive bill-of-materials hierarchy

    The SQL-99 “WITH clause” is very confusing at first because the SQL statement does not begin with the word SELECT. Instead, we use the “WITH clause” to start our SQL query, defining the aggregations, which can then be named in the main query as if they were “real” tables:

    WITH
    subquery_name
    AS
    (the aggregation SQL statement)
    SELECT
    (query naming subquery_name);

    Retuning to our oversimplified example, let’s replace the temporary tables with the SQL “WITH” clause”:


    参考:

    http://blog.csdn.net/a9529lty/article/details/4923957/

    http://blog.csdn.net/a9529lty/article/details/4923988

    http://blog.csdn.net/a9529lty/article/details/4923948

    oracle with    百度

    Oracle with语句的用法


    展开全文
  • 当init.ora中指定sort_area_size大小不足以满足排序操作时,用户将要在他们先前指定的临时表空间进行排序操作,如果磁盘上存在大量排序操作,您应当确保用户在不同磁盘上完成排序工作。 使用tempfiles,它时...
    ---------------------------临时表空间

    当init.ora中指定的sort_area_size大小不足以满足排序操作时,用户将要在他们先前指定的临时表空间进行排序操作,如果磁盘上存在大量的排序操作,您应当确保用户在不同的磁盘上完成排序工作。
    --使用tempfiles,它是本地管理的临时表空间的另一个名称。优点包括:
    1.不需要检查数据字典临时表空间的空闲空间,因为tempfiles使用LMT(本地管理表空间)
    2.使用tempfiles的本地管理范围更广,它自动跟踪邻近的空闲空间,因此不需要结合
    3.tempfiles总是设置为nologgong,您不能重命名tempfiles,不能将tempfile设置为只读,也不能alter daabase命令创建tempfiles。

    若将sort_area_szize,hash_Arae_size,pag_aggrgate_target设置太小而无法在内存中排序,可能导致system表空间里的碎片。
    发生碎片的原因可能是临时表空间用来对磁盘排序,而不是对内存排序。
    --临时表空间有如下特点:
    1.如没有指定临时表空间或临时表空间组,用户临时段存储在默认临时表空间。如全没有指定,则存储在system表空间。
    2.在内存不足以处理整个数据集时就需要用到这个空间。
    3.存储如下语句生成的临时段:create index,select .... order by,distinct,group by,union,intersect,minus,unindexed join,some correlated subqueries

    临时表空间采用本地托管,这样可以减少磁盘排序操作时的磁盘争用。本地可用托管临时表空间使用临时文件,临时文集哪附带了一些可用提高性能的特征。
    如果使用命令create temporpary talespace,临时表空间有如下特点采用本地管理,而不采用字典托管。
    ---本地托管临时表空间有如下特征:
    1.不会产生撤销信息,一次也不会因这些操作产生对磁盘的影响。
    2.不会带有字典托管的临时表空间所导致的相同字典盘区开销
    3.不会在创建时分配整个临时文件,您可用增加一个2GB的临时文件,但直到使用它,才会真正用2GB的大小。
    4.不像其他的数据文件一样在控制文件中被维护,因此rman无法控制他们。如没有备份临时表空间,并且该空间崩溃或损坏,只需要重建新的即可。

    -------------------------------临时表空间组:

    使用临时表空间组的最大优点是:向具有多个会话的单个用户提供如下能力,对每个会话使用不同的实际临时表空间
    临时表空间组的目标是提供一种方法,从而令可并行化的单个sql操作可用使用多个临时表空间进行排序。这样,就可用在非常大的表上创建索引,而不会有单个表空间尺寸的限制,因为索引创建期间的排序操作可以分布列多个表空间中。
    临时表空间组缓解由于单个临时表空间太小而造成的无法保存排序结果的问题,特别时在具有许多分区的表上进行保存时。

    在早期版本中,如果单个sql操作超出临时表空间可用空间,则会生成ora-01652错误。用户的默认临时表中没有足够可用的空间。
    并且不可以自动扩展表空间或禁用autoextend时,用户查询或DML语句会失败。

    -------------------------------临时段

    临时段用于存储数据库操作的中间结果,例如排序,索引构建,distinct,union或任何其他需要排序归并操作的操作应该在临时表空间中分配临时段。
    临时段的分配具有很多情况,当排序操作无法在内存中进行时,例如排序数据,distinct,group by 等的select语句时,则分配个临时段以保存排序的中间结果。
    索引创建一般也需要创建临时段,因为临时段分配和释放经常发生,因此需要创建专门用于保存临时段的表空间,这有助于分散给定操作所需要的I/O,并且可以减少由于临时段的分配和释放而在其他表空间中产生存储碎片的可能性。


    -------------------------------临时表

    “临时”是就存储在表中的数据而言的,而不是表的定义自身
    create global temporary table命令可以创建一个临时表
    所有对该表本身拥有权限的用户能够在临时表上执行DML语句,每个用户在该表中只能看到他们自己的数据
    (1)在事物处理期间的临时数据
    on commit delete rows 删除临时表中所有行
    create global temporary table()on commit delete rows;
    (2)在会话期间的临时数据
    on commit preserve rows可以在超过事物处理期限后仍然保持表中的行,但是当用户会话终止时,将会删除临时表中用户的所有行。
    展开全文
  • 问题 1:为什么在已经有了临时表的情况下还要引入表变量? 解答 1:与临时表相比,表变量具有下列优点: • 如 SQL Server 联机丛书“表”(Table) 一文中所述,表变量(如局部变量)具有明确定义的范围,...
  • 数据库临时表

    2020-11-24 14:00:38
    今天在翻看别人代码时发现了临时表的使用,由于没有用过,特此学习,在此记录 1.定义 客户端新建了一个会话,这个会话只是服务器与客户端1对1的关系,客户端可能在服务端建立一个临时表,满足客户端处理某些事务的...
  • SQL表变量与临时表区别 + 非游标临时表遍历 分类:SQL Server2009-11-...问题 1:为什么在已经有了临时表的情况下还要引入表变量?解答 1:与临时表相比,表变量具有下列优点: 如 SQL Server 联机丛书“表”...
  • 有关临时表

    2017-03-27 10:40:00
    在利用临时表的时候,需要取长补短,避免由于使用不当引起的性能问题。  下示例,业务是“只存放回报中存在的客户、交易编码的上日持仓记录”,原来的实现是:   1、 创建临时表 create table tempdb..file_...
  • SQL临时表和表变量

    2019-10-03 03:54:44
    表变量:存储在内存中,作用域是脚本执行过程中,脚本执行完毕之后就会释放内存,...使用临时表和表变量数据量大小没有具体临界值,DBA建议1000条数据,查询列不要太多情况下。 临时表临时表是存储在...
  • 临时表和表变量,这是一个古老话题,我们在网上也找到很多资料阐述两者特征,优点与缺点
  • 最经工作中经常要用到 SQLquery (in SQLserver),发现这个临时表在处理数据时比较方便,优点如下: 那么什么是SQLserver中的临时表,什么时候需要用到临时表?又该如何使用呢? SQL Server 中的临时表分类: ...
  • 1.与临时表相比,表变量具有下列优点: 如 SQL Server 联机丛书“表”(Table) 一文中所述,表变量(如局部变量)具有明确定义范围,在该范围结束时会自动清除这些表变量。与临时表相比,表变量导致存储过程...
  • 临时表和表变量,这是一个古老话题,我们在网上也找到很多资料阐述两者特征,优点与缺点。这里我们在SQL Server 2005\SQL Server 2008版本上通过举例子,说明临时表和表变量两者一些特征,让我们对临时表...
  • 临时表 Vs 表变量

    2011-11-02 01:00:00
    开始 说临时表和表变量,这是一个古老话题,我们在网上也找到很多资料阐述两者特征,优点与缺点。这里我们在SQL Server 2005\SQL Server 2008版本上通过举例子,说明临时表和表变量两者一些特征,让我们对...
  • 临时表 & 表变量

    2011-11-02 08:41:00
    临时表和表变量,这是一个古老话题,我们在网上也找到很多资料阐述两者特征,优点与缺点。这里我们在SQL Server 2005\SQL Server 2008版本上通过举例子,说明临时表和表变量两者一些特征,让我们对临时表...
  • sql临时表和表变量

    2014-11-07 15:26:00
    1. 为什么要使用表变量表变量是从2000开始引入,微软认为与本地临时表相比,表变量具有如下优点: a.与其他变量定义一样,表变量具有良好定义范围,并会被自动清除; b.在存储过程中使用表变量会减少存储过程...
  • 在开发过程中,经常会遇到使用表变量和本地临时表的情况。下面是对二者的一个介绍: 1. 为什么要使用表变量 表变量是从2000开始引入的,微软认为与本地临时表相比,表变量具有如下优点: ...
  • 临时表 Vs 表变量(转)

    2019-09-27 06:01:31
    临时表和表变量,这是一个古老话题,我们在网上也找到很多资料阐述两者特征,优点与缺点。这里我们在SQL Server 2005\SQL Server 2008版本上通过举例子,说明临时表和表变量两者一些特征,让我们对临时表...
  • 表变量和临时表总结

    2013-09-19 10:10:52
    在开发过程中,经常会遇到使用表变量和本地临时表的情况。下面是对二者的一个介绍:   1. 为什么要使用表变量   表变量是从2000开始引入的,微软认为与本地临时表相比,表变量具有如下优点:  a.与其他变量...
  • SQL 表变量和临时表

    2013-11-16 16:24:00
    SQL 表变量和临时表 表变量:存储在内存中,作用域是脚本执行过程中,脚本执行完毕之后就会释放内存...使用临时表和表变量数据量大小没有具体临界值,DBA建议1000条数据,查询列不要太多情况下。 临时表...
  • mysql锁定单个表的方法复制代码 代码如下:mysql>lock table userstat read;mysql>unlock tables;页级的典型代表引擎为BDB。表级的典型代表引擎为MyISAM,MEMORY以及很久以前的ISAM。行级的典型代表引擎为INNODB...
  • 创建临时表和表变量区别:场景:在查询10W数据时页面调用存储过程用declare定义表,查询速度大约10多秒在页面显示,利用创建临时表提高显示速度大约3S左右,于是找了创建临时表和创建表变量区别。1.表变量具有...
  • 问题 1:为什么在已经有了临时表的情况下还要引入表变量? 解答 1:与临时表相比,表变量具有下列优点: 如 SQL Server 联机丛书“表”(Table) 一文中所述,表变量(如局部变量)具有明确定义的范围,在该范围...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 526
精华内容 210
关键字:

临时表的优点