搜索
首页数据库mysql教程 带您理解SQLSERVER是如何执行一个查询的

带您理解SQLSERVER是如何执行一个查询的 看这篇文章之前,阁下可以先看一下下面的文章 SQLSERVER独特的任务调度算法"SQLOS" SQL Server SQLOS 的任务调度[转] 翻译自: 不知道是哪篇文章抄哪篇文章的 ,不管他了,我也偷他们的文章,嘎嘎嘎嘎嘎。。。 我将会

带您理解SQLSERVER是如何执行一个查询的

看这篇文章之前,阁下可以先看一下下面的文章

SQLSERVER独特的任务调度算法"SQLOS"

SQL Server SQLOS 的任务调度[转]

 

翻译自:

不知道是哪篇文章抄哪篇文章的 ,不管他了,我也偷他们的文章,嘎嘎嘎嘎嘎。。。

我将会用尽本人的所有功力并且结合研究SQLSERVER以来的知识去翻译这篇文章

希望大家多多支持o(∩_∩)o,其实我也是站在巨人的肩膀上的,呵呵~

特别说明:为了节省篇幅,文中会对原文有删减,删减的部分都是一些不重要的部分

在这里感谢有道词典(我不是卖广告啊!!!) 

 

正式开始

连接方式和请求

如果你是一个开发者,并且你的程序使用SQLSERVER来做数据库的话

你会想知道当你用你的程序执行一个查询的时候实际发生了什么事情

我希望这篇文章能够帮你写出更好的数据库应用程序和帮你更深入了解遇到的数据库性能问题

 

SQLSERVER是一个C/S模型的平台。唯一和数据库交互的方式只有发送包含数据库命令的请求到数据库服务器端。

客户端和数据库通信的协议使用一种叫做TDS的协议(Tabular Data Sream)

园子里的文章:

表格数据流协议TDS

TDS协议解析(转载)

如果你用微软的Network Monitor工具来抓取SQL Server和客户端之间的网络包

你会看到使用的是TDS协议

在Description那一列

TDS:Response,Version=7.1......

TDS:SQLBatch,Version=7.1.......

那四个SSL连接是客户端登录SQLSERVER前做的加密连接(这里不管你有没有用SSL加密数据传输,SQLSERVER都会在登录前加密

用户发过来的用户名和密码,而登录了之后才使用您配置的SSL证书来加密客户端和SQLSERVER往来的数据)

SQLSERVER都会加密客户端发过来的用户名和密码(使用SQL验证不是使用Windows验证)

大家可以留意一下SQL ERRORLOG里在SQLSERVER启动的时候的日志

会看到一句:A self-generated certificate was sccessfully loaded for  encryption

默认情况下SQL Server会自动生成一个证书并使用这个证书来对客户端登录SQLSERVER的时候的连接做SSL加密

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
sqlserver数据库在哪里sqlserver数据库在哪里Apr 05, 2024 pm 08:21 PM

SQL Server 数据库文件通常存储在以下默认位置:Windows: C:\Program Files\Microsoft SQL Server\MSSQL\DATALinux: /var/opt/mssql/data可通过修改数据库文件路径设置来自定义数据库文件位置。

Java连接SqlServer错误如何解决Java连接SqlServer错误如何解决May 01, 2023 am 09:22 AM

问题发现这次使用的是SqlServer数据库,之前并没有使用过,但是问题不大,我按照需求文档的步骤连接好SqlServer之后,启动SpringBoot项目,发现了一个报错,如下:刚开始我以为是SqlServer连接问题呢,于是便去查看数据库,发现数据库一切正常,我首先第一时间问了我的同事,他们是否有这样的问题,发现他们并没有,于是我便开始了我最拿手的环节,面向百度编程。开始解决具体报错信息是这样,于是我便开始了百度报错:ERRORc.a.d.p.DruidDataSource$CreateCo

Win11无法安装SQL Server的原因及解决方案Win11无法安装SQL Server的原因及解决方案Dec 27, 2023 pm 07:48 PM

有网友反馈,在win11上无法安装sqlserver这款软件,不知道是怎么回事,根据目前的测试来看,win11存在硬盘问题,部分接口硬盘无法安装这款软件。win11为啥不能安装sqlserver:答:win11不能安装sqlserver是硬盘的问题。1、据了解,win11存在对于硬盘的检测bug。2、这导致sqlserver无法在“三星m.2接口”硬盘上安装。3、因此,如果我们要安装的话,需要准备一块其他硬盘。4、然后将该硬盘安装到电脑里,如果没有额外插槽的话就要换掉之前的硬盘。5、安装完成后,

sqlserver和mysql区别是什么sqlserver和mysql区别是什么Aug 11, 2023 am 10:21 AM

sqlserver和mysql区别是:1、Server适用于Windows操作系统,而MySQL适用于多个操作系统;2、Server需要购买许可证才能使用,而MySQL可以免费下载和使用;3、Server适用于大型企业级应用程序,而MySQL则适用于中低规模的应用程序;4、Server提供了丰富的安全功能,而MySQL的安全功能相对较少;5、Server使用自己的存储引擎等。

sqlserver数据库日志文件在哪里sqlserver数据库日志文件在哪里Apr 05, 2024 pm 08:06 PM

SQL Server 数据库日志文件通常位于“C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Log”路径。该文件存储着数据库活动信息,包括事务日志、错误消息、警告和性能诊断数据,对于数据库恢复和故障排除至关重要。

Linux怎么安装ODBC连接SQLServer数据库Linux怎么安装ODBC连接SQLServer数据库May 16, 2023 pm 12:19 PM

操作系统:Centos7.21、下载ODBC安装包unixODBC-2.3.9.tar.gzfreetds-1.3.9.tar.gz2、安装步骤第一步:上传两个安装包到服务器上第二步:安装unixODBC,先安装这个,后安装freetds注意:这里如果安装顺序不一致,就不会产生libtdsodbc.so驱动文件(非常重要)2.1、操作系统先安装gcc:yuminstallgcc2.2、安装odbctar-xvfunixODBC-2.3.9.tar.gzcdunixODBC-2.3.9./conf

如何正确理解PHP中的值传递方式如何正确理解PHP中的值传递方式Mar 08, 2024 pm 03:30 PM

如何正确理解PHP中的值传递方式PHP是一种广泛应用于Web开发的脚本语言,而在PHP中的参数传递方式主要有值传递和引用传递两种。而理解PHP中的值传递方式对于编写高效的代码至关重要。本文将详细讨论PHP中的值传递方式,并通过具体的代码示例来帮助读者更好地理解。值传递方式的基本概念值传递是指将变量的值复制一份传递给函数或方法,在函数内部对该值的操作不会影响到

深入理解Linux管道的使用方法深入理解Linux管道的使用方法Feb 21, 2024 am 09:57 AM

深入理解Linux管道的使用方法在Linux操作系统中,管道是一种非常有用的功能,能够将一个命令的输出作为另一个命令的输入,从而方便地实现各种复杂的数据处理和操作。深入理解Linux管道的使用方法对于系统管理员和开发人员来说非常重要。本文将介绍管道的基本概念,并通过具体的代码示例来展示如何使用Linux管道进行数据处理和操作。1.管道的基本概念在Linux

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前By尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
1 个月前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
4 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)