热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

SQL查询时生成的临时文件对数据库查询的影响

当使用sql语句进行查询时,查询的结果是存放在一个后缀名为tmp的一个临时文件中。当查询的时候,该文件存放查询的结果,当关闭该查询的时候,该临时文件会自动删除,所以在我们进行查询的时候,是感觉不到该文件的存在。一、tmp文件存在于什么地方对于wind

当使用sql语句进行查询时,查询的结果是存放在一个后缀名为tmp的一个临时文件中。当查询的时候,该文件存放查询的结果,当关闭该查询的时候,该临时文件会自动删除,所以在我们进行查询的时候,是感觉不到该文件的存在。 一、tmp文件存在于什么地方 对于wind

  当使用sql语句进行查询时,查询的结果是存放在一个后缀名为tmp的一个临时文件中。当查询的时候,该文件存放查询的结果,当关闭该查询的时候,该临时文件会自动删除,所以在我们进行查询的时候,是感觉不到该文件的存在。

  一、tmp文件存在于什么地方

  对于windows系统,都有一个系统环境变量,这个变量可以通过

  右击我的电脑——属性——高级——环境变量可以查看。

  Tmp临时文件就存在于temp文件夹下面。

  二、tmp文件的格式

  对于tmp文件,里面存放的查询结果,那么对于查询结果在tmp文件中的存储是按照

  一定格式来进行存储的,存储的格式为:

  对于每一列,分成两部分:

  第一部分:标示该列的长度,当字符的长度大于255时,使用5个字节来存放。

  第二部分:该列的数据。对于字符型数据,是转化为uniocode来进行存储的。

select 1,cast(1 as bigint),'ab',getdate()
查询生成的tmp文件为(16进制)
04 01 00 00 00 08 01 00 00 00 00 00 00 00 04 61 00 62 00 08 60 73 c2 02 7a 7b cb 08
其中04 01 00 00 00为第一个1
08 01 00 00 00 00 00 00 00为第二个bigint类型的1
04 61 00 62 00 为’ab’
08 60 73 c2 02 7a 7b cb 08 为getdate()

  例如:对于这样一张表:

SQL查询时生成的临时文件对数据库查询的影响

  使用select * from tb 形成的tmp文件格式为:

id列的数据长度

id列的数据

dtcol列的数据长度

dtcol列的数据

charcol的数据长度

charcol的数据

maxcol列的数据长度

maxcol的数据

  其中charcol与maxcol都是转换为unicode来进行存储的。

  对于tmp文件的查看,可以通过记事本来查看,但是只能看到字符,对于数字、日期看到的是乱码,可以使用UE来查看tmp文件的二进制数据。

  三、向该表中插入100W数据

declare @i int @dt datetime

select @i=0,@dt='1900-1-1'

while @i<1000000

begin

insert into testdata(dtcol,charcol,maxcol)

values(@dt+@i,replicate(char(rand()*26+65),100),replicate(newid(),100))

set @i=@i+1

end

  四、tmp文件对查询的影响

  在知道了tmp文件的格式之后,,那么对于tmp文件的大小一般是能估算出来的,以上

  述表为例,一行在tmp文件中的大小为:1+8+1+8+1+200+5+7200=7424B,100W的数据大约是7424*100WB,tmp文件的大小为7,250,000KB左右。

  1、当表中的数据比较多的话,尤其是字符类型的数据占多数的时候,就需要注意这个tmp文件了。如果temp文件夹所在的磁盘空间不富裕的话,那么tmp会占用剩余的磁盘空间,还不够的话,那么系统会提示空间不够,并且会终止本次查询。

  2、temp文件夹所在的磁盘的磁盘格式最好为NTFS,因为FAT32格式最大的文件大小为4G,当tmp文件的大小超过4G时,那么是不会产生新的tmp文件的,那么系统也会提示空间不够,并且终止本次查询。(空间不够未必是磁盘空间不够,而是因为tmp文件已经达到最大容量4G)

  综上所述:temp文件夹应该放在磁盘空间充足的,并且分区格式为ntfs格式的分区上。

推荐阅读
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 本文介绍了如何在MySQL中将零值替换为先前的非零值的方法,包括使用内联查询和更新查询。同时还提供了选择正确值的方法。 ... [详细]
  • 如何去除Win7快捷方式的箭头
    本文介绍了如何去除Win7快捷方式的箭头的方法,通过生成一个透明的ico图标并将其命名为Empty.ico,将图标复制到windows目录下,并导入注册表,即可去除箭头。这样做可以改善默认快捷方式的外观,提升桌面整洁度。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • windows便签快捷键_用了windows十几年,没想到竟然这么好用!隐藏的功能你知道吗?
    本文介绍了使用windows操作系统时的一些隐藏功能,包括便签快捷键、截图功能等。同时探讨了windows和macOS操作系统之间的优劣比较,以及人们对于这两个系统的不同看法。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • 本文是一位90后程序员分享的职业发展经验,从年薪3w到30w的薪资增长过程。文章回顾了自己的青春时光,包括与朋友一起玩DOTA的回忆,并附上了一段纪念DOTA青春的视频链接。作者还提到了一些与程序员相关的名词和团队,如Pis、蛛丝马迹、B神、LGD、EHOME等。通过分享自己的经验,作者希望能够给其他程序员提供一些职业发展的思路和启示。 ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • 本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ... [详细]
  • Win10下游戏不能全屏的解决方法及兼容游戏列表
    本文介绍了Win10下游戏不能全屏的解决方法,包括修改注册表默认值和查看兼容游戏列表。同时提供了部分已经支持Win10的热门游戏列表,帮助玩家解决游戏不能全屏的问题。 ... [详细]
author-avatar
你试下再望啊
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有