데이터 베이스 MySQL 튜토리얼 对《SQL Server中tempdb的management》的一些更正和补充

对《SQL Server中tempdb的management》的一些更正和补充

Jun 07, 2016 pm 05:37 PM
하나

对《SQL Server中tempdb的management》的一些更正和补充 前几天看了这篇文章:SQL Server中tempdb的management 发现里面有些内容不是很准确 文章中说到: TempDB和其他用户数据库一样以Model数据库为模板创建,并且可以创建和查询表格。 与其他用户数据库不

对《SQL Server中tempdb的management》的一些更正和补充

前几天看了这篇文章:SQL Server中tempdb的management

发现里面有些内容不是很准确

文章中说到:

TempDB和其他用户数据库一样以Model数据库为模板创建,并且可以创建和查询表格。

与其他用户数据库不同的是,TempDB在每次SQL Server启动的时候都会被重新创建。

 

我打开SQLSERVER2005,对比了一下model数据库和tempdb数据库,发现还是有一些不同

初始大小和自动增长、跨数据库所有权链接已启用这里不讨论

跨数据库所有权链接:

 

页面验证里面,,model数据库页面验证用的是checksum,但是tempdb没有页面验证

tempdb不使用页面验证究竟好还是不好???

讨论这个问题之前,这里要先了解一下checksum的功能

以下摘抄自:

页面 CHECKSUM:
在数据库页面从被写入磁盘到被SQL Server读取的这段时间内,有可能由于外界原因发生损坏。
比如I/O设备的损坏,驱动的损坏或者由于电源不稳没有写完整。Checksum机制使SQL Server可以检测到这些损坏。
需要注意的是,Checksum机制只能使我们确定是不是I/O子系统引起页面损坏,但是不能自动修复它们。
作为管理员,我们可以利用这些信息来辨识出并更换损坏的I/O设备,
也可以利用重建索引或者修复损坏文件等方法修复已发生的页面损坏。

计算checksum的算法是复杂的,因为会涉及到多个页面的读写,增加CPU的负荷,可能会影响系统的吞吐量

 

系统吞吐量、CPU负荷这个本人觉得可以忽略不计,因为用户数据库默认都是开启了checksum页面验证的

所以本人觉得还是有必要开启checksum页面验证

 

页面checksum的条件:在数据库页面从被写入磁盘到被SQL Server读取的这段时间内,数据页一定要写入到磁盘,

如果数据页面没有写入到磁盘,那么开启checksum也就没有什么用处

 

 

在tempdb里,无论是数据页还是索引页还是版本存储区里的页面都有可能写入磁盘

版本存储区的资料:

版本存储区也和数据页面索引页面一样由8k大小的页组成。这些页存在缓冲池中,可以在TempDB面临内存压力时被写入磁盘

如果是这样,那么SQLSERVER应该要开启tempdb数据库的checksum页面验证才对啊

很可惜,本人暂时还没有在网上找到相关解释

 

不过通过下面实验,本人猜测了一些SQLSERVER团队的意图

这些实验在文章SQL Server中tempdb的management里已经给出了,本人只是做一些补充

实验

以下实验的实验环境:Windows7,SQLSERVER2005个人开发者版

 

全局临时表

通过创建##t_tempdblog全局临时表,插入数据,修改数据,删除数据,建立聚集索引,删除聚集索引,建立非聚集索引,删除非聚集索引

查看事务日志文件里有没有相关的操作记录

测试脚本

插入记录

1 use tempdb ##t_tempdblog ##t_tempdblog (c1 int, c2 char(1000)) () ##t_tempdblog ), 1000)) operation,context, , , fn_dblog(null, null)

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Python Pandas 실습, 데이터 처리 초보자를 위한 빠른 발전! Python Pandas 실습, 데이터 처리 초보자를 위한 빠른 발전! Mar 20, 2024 pm 10:21 PM

read_csv()를 사용하여 CSV 파일 읽기: df=pd.read_csv("data.csv") 누락된 값 처리: 누락된 값 제거: df=df.dropna() 누락된 값 채우기: df["column_name"].fillna( value ) 데이터 유형 변환: df["column_name"]=df["column_name"].astype(dtype) 정렬 및 그룹화: 정렬: df.sort_values(by="column_name") 그룹: groupby_object=df.groupby(by= " 컬럼_이름

kvr800d2n6은 DDR3와 호환됩니까? (kvr800d2n6은 4GB 버전을 제공합니까) kvr800d2n6은 DDR3와 호환됩니까? (kvr800d2n6은 4GB 버전을 제공합니까) Jan 09, 2024 pm 10:33 PM

kvr800d2n6을 ddr3과 함께 사용할 수 있습니까? 1. kvr800d2n6은 DDR2 메모리 모듈이고 DDR3은 또 다른 유형의 메모리 모듈이므로 둘은 호환되지 않습니다. 2. DDR2와 DDR3의 슬롯 모양은 동일하지만 전압, 타이밍, 전송 속도 등에 차이가 있어 서로 다른 유형의 메모리 모듈을 상호 운용할 수 없습니다. kvr800d2n6은 여러 세대의 메모리 스틱입니다. 내용을 다시 쓸 때 원래 의미를 바꾸지 않고 언어를 중국어로 변경해야 합니다. kvr800 메모리의 내용을 다시 쓸 때 원래 의미를 바꾸지 않고 언어를 중국어로 바꿔야 합니다. (DDR2) 메모리 주요 주파수는 800mhz입니다. kvr800d2n62g는 킹스턴 KVR800입니다.

PHP PDO 고급 팁: 저장 프로시저 및 트랜잭션 사용 PHP PDO 고급 팁: 저장 프로시저 및 트랜잭션 사용 Feb 20, 2024 am 10:01 AM

저장 프로시저는 사전 컴파일되어 데이터베이스 서버에 저장되는 SQL 문입니다. 저장 프로시저를 실행해야 하는 경우 SQL 문을 다시 작성하지 않고 저장 프로시저의 이름만 호출하면 됩니다. 저장 프로시저는 특히 복잡하거나 반복적인 SQL 문을 실행해야 하는 경우 코드 가독성과 효율성을 향상시킬 수 있습니다. 1. 저장 프로시저 CREATEPROCEDUREget_customer_by_id(INcustomer_idINT)BEGINSELECT*FROMcustomersWHEREcustomer_id=customer_id;END2 저장 프로시저 $stmt=$pdo->prepare(

Java 예외 처리의 마스터가 되어 보세요: 코드의 오류를 제어하세요. Java 예외 처리의 마스터가 되어 보세요: 코드의 오류를 제어하세요. Mar 24, 2024 pm 04:06 PM

Java의 예외 처리 시스템은 가장 일반적인 Throwable 클래스부터 Exception 및 Error와 같은 보다 구체적인 하위 클래스까지 계층 구조를 따릅니다. 이 계층 구조를 이해하는 것은 예외 처리 방법과 해당 범위를 결정하므로 중요합니다. 2. 예외 전파 메커니즘을 익히십시오. 프로그램에서 예외가 전파되면 호출 스택이 위로 이동합니다. 코드에서 예외가 처리되지 않으면 예외를 호출한 메서드로 전파됩니다. 예외 전파 메커니즘을 이해하는 것은 예외가 적절하게 처리되도록 하는 데 중요합니다. 3. try-catch-finally 블록을 사용하십시오. try-catch-finally 블록은 Java에서 예외를 처리하는 데 선호되는 메커니즘입니다. try 블록에는 실행해야 하는 코드가 포함되어 있습니다.

역전에서 가장 좋은 ak는 무엇입니까(반전에서 ak의 순위) 역전에서 가장 좋은 ak는 무엇입니까(반전에서 ak의 순위) Jan 07, 2024 pm 06:34 PM

역전에서 가장 좋은 AK는 무엇입니까? AK47은 전 세계 군대와 테러 조직에서 널리 사용되는 매우 유명한 소총입니다. 뛰어난 성능과 신뢰성으로 알려져 있으며 세계 최고의 돌격 소총 중 하나로 간주됩니다. AK47의 디자인은 간단하고 실용적이며 다양한 열악한 환경에서 사용하기에 적합합니다. 7.62mm 구경탄을 사용하는데, 사거리와 관통력이 뛰어납니다. AK47은 제조 비용이 저렴하고 유지 관리 및 작동이 쉬워 인기가 높습니다. 디자인에 일부 제한이 있기는 하지만 여전히 매우 안정적이고 효과적인 무기입니다. 군사 작전이든 개인 방어이든 AK47은 강력한 선택입니다. 반격전에서 가장 고전적인 총기는 의심할 여지 없이 AK47이다. 쇼핑몰에서 AK47의 상설 판매 가격은

Java 메모리 모델에 대한 실용 가이드: 동시 프로그래밍에서 흔히 발생하는 함정을 피하는 방법 Java 메모리 모델에 대한 실용 가이드: 동시 프로그래밍에서 흔히 발생하는 함정을 피하는 방법 Feb 19, 2024 pm 02:45 PM

가시성: 스레드는 공유 변수에 대한 자체 수정 사항만 볼 수 있는 반면, 다른 스레드에 의한 공유 변수 수정 사항을 보려면 일종의 동기화 메커니즘이 필요합니다. 원자성: 작업이 완전히 실행되거나 중간 상태 없이 전혀 실행되지 않습니다. 질서: 공유 변수에 대한 스레드 작업은 다른 스레드에서도 특정 순서로 수행되어야 합니다. 2. 이전 발생 원칙 이전 발생 원칙은 스레드 간 공유 변수의 액세스 순서를 정의하는 JMM의 핵심 규칙 중 하나입니다. 사전 발생 원칙에 따르면, 다른 작업 B 이전에 작업이 발생하면 A의 공유 변수 수정은 확실히 B에서 발생합니다.

자바 문법의 사원: 문법 순례를 떠나 프로그래밍 잠재력을 깨워보세요 자바 문법의 사원: 문법 순례를 떠나 프로그래밍 잠재력을 깨워보세요 Mar 30, 2024 pm 01:01 PM

변수 선언은 변수 이름, 유형 및 범위를 결정합니다. Java는 기본(int, double, boolean) 유형과 참조(String, List) 유형을 지원합니다. 2. 흐름 제어 if/else, 스위치/케이스 및 루프(while, do-while, for)를 사용하여 프로그램 흐름을 제어합니다. 조건문은 조건을 확인하고 분기문은 조건에 따라 다양한 코드 블록을 실행합니다. 3. 배열 배열은 동일한 유형의 요소 모음을 저장합니다. 배열은 [] 유형으로 선언되며 요소는 인덱스로 액세스할 수 있습니다. 4. 클래스 및 객체 클래스는 상태와 동작이 있는 객체를 생성하는 데 사용되는 청사진입니다. 객체는 특정 클래스의 인스턴스이며 해당 클래스의 멤버 메서드와 변수에 액세스할 수 있습니다. 5. 상속된 하위 클래스는 필드를 상속하고

Java 스레드 동기화 및 상호 배제: 동시 프로그래밍의 비밀 공개 Java 스레드 동기화 및 상호 배제: 동시 프로그래밍의 비밀 공개 Feb 20, 2024 am 11:15 AM

1. 스레드 동기화 개념: 스레드 동기화는 여러 스레드가 공유 리소스에 액세스할 때 특정 메커니즘을 사용하여 액세스 순서와 동작을 조정하여 데이터 혼란과 프로그램 충돌을 방지하는 것을 의미합니다. 2. 동기화 메커니즘: Java는 잠금, 동기화 방법, 동기화 블록, 원자 변수 등을 포함한 다양한 동기화 메커니즘을 제공합니다. 이러한 메커니즘의 목적은 한 번에 하나의 스레드에서만 공유 리소스에 액세스할 수 있도록 하는 것입니다. 3. 잠금: 잠금은 하나의 스레드가 공유 리소스에 독점적으로 액세스할 수 있도록 하는 일반적인 동기화 메커니즘입니다. 스레드가 잠금을 획득하면 다른 스레드는 실행을 계속하기 전에 해당 스레드가 잠금을 해제할 때까지 기다려야 합니다. 4. 동기화된 메소드 및 동기화된 블록: 동기화된 메소드 및 동기화된 블록은 메소드 또는 코드 블록 앞에 동기화 키워드를 추가하여 구현됩니다.

See all articles