前沿:换了新公司,公司使用的Sybase数据库。现在开始学习Sybase数据库了。希望未来的几个月能对Sybase由浅入深的了解和研究。

Tempdb的作用

sybase server端内部使用

排序

创建worktables

reformatting

存储临时表和index



Tempdb用途分类

Turely temp tables

Regular user tables

worktables



(1)Truly temporary tables

这种表是正在的临时表, 通过create table #tablename或select into #tablename创建,只在当前session中有效,session结束时,这些表或index自动被drop



create table #temptable (...)

or:

select select_list 

    into #temptable ...



(2)Regular user tables

通过tempdb..tablename 可以创建RUT,

create table tempdb..temptable 

or:

select select_list

    into tempdb..temptable

在什么情况下使用RUT表呢?

要在不同session间共享数据,通过grant permission共享

用于bulk copy

用完以后用户必须显示的drop掉,否则会一直存在,知道sybase server重启



(3)Worktables

在sybase处理join, sort或其他内部操作是创建,这种表不能共享,命令处理完后马上自动被drop





tempdb的大小

默认2MB,存储在master device上。

我们可以用sp_helpdb系统存储过程查看tempdb的大小

isql>sp_helpdb tempdb

name      db_size  owner  dbid   created     status

--------- -------- ------ ------ ----------- --------------------

tempdb    2.0 MB   sa     2     May 22, 1999 select into/bulkcopy





device_frag  size    usage        free kbytes

------------ -------- ------------ ---------

master       2.0 MB  data and log 1248



用户量越大,并发越多,将tempdb大小设置越大越好。通常情况下,设置tempdb的大小为你的数据库大小的20%~25%





tempdb和lock

在tempdb中create或drop表,索引会引起system table上锁争用,这些system table包括sysobjects, syscolumns和sysindexes。

如果在tempdb重复create或drop表和索引,那么最好的办法是在程序启动时将临时表建好,结束时truncate table来删除数据以减少system table上锁的争用。



tempdb性能优化

(1) 减少log,多用select into,少用create table #xxx and insert,select into产生最少的log

(2) 避免在tempdb中创建大的表,如果创建了大的表,记得建index

(3) 用嵌套SQL,嵌套调用Stored proc 代替大的表

转至:http://www.cnblogs.com/xzpp/archive/2012/07/19/2599962.html

Sybase - tempdb的更多相关文章

  1. sybase学习

    安装 下载安装包, 解压到/opt/sybase,注意必须目录是这样的/opt/sybase/ASE-15_0/install/ ,因为RUN_DBSVR里面写死了/opt/sybase/ASE-15 ...

  2. Sybase ASE无响应的又一个情况

    昨天下午,客户那边的系统管理员给我电话,说有套系统的SYBASE数据库最近有点怪,总是时不时莫名其妙地就忽然卡死,有可能一下子就自动恢复了,也有可能后面一直卡住,只好重启.根据客户反映的状况,初步判断 ...

  3. Sybase配置数据库参数

    Sybase配置数据库参数参数配置的两种方法:sp_configure ‘参数名称’,参数值修改参数文件(如:Sybase主机上的 %SYBASE%\servername.cfg) 配置Sybase数 ...

  4. SYBASE的select into与insert into使用和区别

    对于表的部分或全部字段的复制,Sybase数据库提供了两种方式:select into和insert into. select into: 语法:select  value1, value2, val ...

  5. Sybase数据库应用系统调优的五大领域

    Sybase数据库应用系统调优的五大领域 2011/3/14/13:49来源:慧聪it网 本 文以“某大型商业银行的网上银行系统”这一很具有典型意义的企业级大型Sybase数据库应用系统为例,涉及了数 ...

  6. 性能问题案例02——sybase连接堵塞问题

    现象:近期现场反馈一个问题.系统在审批的时候,常常卡死.整个系统全然用不了,浏览器訪问处于loading的状态. 排查: 1.一般系统挂了首先想到内存问题,可是现象是loading,也就是说没有挂,线 ...

  7. 数据库实战案例—————记一次TempDB暴增的问题排查

    前言 很多时候数据库的TempDB.日志等文件的暴增可能导致磁盘空间被占满,如果日常配置不到位,往往会导致数据库故障,业务被迫中断. 这种文件暴增很难排查,经验不足的一些运维人员可能更是无法排查具体原 ...

  8. Sybase 常用SQL

    http://blog.chinaunix.net/uid-200142-id-3073894.html ===========================使用总结================ ...

  9. Tempdb initial size和dbcc shrinkfile

    在使用sql server时您可能遇到过下面的情况,tempdb的数据文件初始大小为3mb, 随着对tempdb的使用,tempdb文件逐渐变得很大(例如30GB),导致了磁盘空间不足. 此时您需要立 ...

随机推荐

  1. hdu3966 点权模板-树链部分

    Aragorn's Story Time Limit: 10000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  2. Java并发编程之并发工具类

    CountDownLatch CountDownLatch可以用于一个或多个线程等待其他线程完成操作. 示例代码 private static CountDownLatch c = new Count ...

  3. TensorFlow 聊天机器人开源项目评测第一期:DeepQA

    聊天机器人开源项目评测第一期:DeepQA https://github.com/Conchylicultor/DeepQA 用 i5 的笔记本早上运行到下午,跑了 3 轮的结果,最后效果并不理想.官 ...

  4. Linux常用命令大全(归类)

    最近都在和Linux打交道,这方面基础比较薄弱的我只好买了本鸟哥的书看看,感觉还不错.我觉得Linux相比windows比较麻烦的就是很多东西都要用命令来控制,当然,这也是很多人喜欢linux的原因, ...

  5. windows server 2008 R2 禁用ipv6和隧道适配器

    在windows server 2008 R2操作系统下部署weblogic web application,部署完成后进行测试,发现测试页的地址使用的是隧道适配器的地址,而不是静态的ip地址,而且所 ...

  6. 操作系统内存管理之 内部碎片vs外部碎片

    外部碎片:因为行程持续地被载入与置换,使得可用的记忆体空间被分割成许多不连续的区块.虽然记忆体所剩空间总和足够让新行程执行,却因为空间不连续,导致程式无法载入执行.内部碎片:发生在以固定长度分割区来进 ...

  7. 修复 Ubuntu 14.04 的系统设置残缺问题

    sudo apt-get install ubuntu-desktop

  8. 前端性能优化之-dns预解析

    预解析的实现: 1. 用meta信息来告知浏览器, 当前页面要做DNS预解析:<meta http-equiv="x-dns-prefetch-control" conten ...

  9. markdowm写博客测试

    markdowm测试文档 #include <bits/stdc++.h> using namespace std; int main() { printf("Hello Wor ...

  10. Go 语言运算符

    运算符用于在程序运行时执行数学或逻辑运算. Go 语言内置的运算符有: 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 其他运算符 接下来让我们来详细看看各个运算符的介绍. 算术运算符 下表 ...