zoukankan      html  css  js  c++  java
  • SQL查询优化《四》:临时表和表变量的使用

    一、使用情况

    •  如果语句很复杂,连接太多,可以考虑用临时表和表变量分步完成。
    •  如果需要多次用到一个大表的同一部分数据,考虑用临时表和表变量暂存这部分数据。
    •  如果需要综合多个表的数据,形成一个结果,可以考虑用临时表和表变量分步汇总这多个表的数据。

    二、临时表和表变量的选择

    很多说法是表变量在内存,速度快,应该首选表变量,但是在实际使用中发现:

    • 主要考虑需要放在临时表的数据量,在数据量较多的情况下,临时表的速度反而更快。
    • 执行时间段与预计执行时间(多长)

    三、临时表产生使用SELECT INTO和CREATE TABLE + INSERT INTO的选择

    一般情况下:

    • SELECT INTO会比CREATE TABLE + INSERT INTO的方法快很多,
    • SELECT INTO会锁定TEMPDB的系统表SYSOBJECTS、SYSINDEXES、SYSCOLUMNS,在多用户并发环境下,容易阻塞其他进程。
  • 相关阅读:
    linux 邮件服务器
    Nginx学习之keepalive
    explain 和 desc 详解
    mysql 常用语句
    loop设备及losetup命令
    cryptsetup文件系统加密
    ftp主动与被动模式详解
    大型网站关键技术
    大访问量网站架构设计
    Mysql 的事务隔离级别
  • 原文地址:https://www.cnblogs.com/helianthus33/p/8777711.html
Copyright © 2011-2022 走看看