SQL Server“复杂”概念之理解
用惯了Oracle的人,接触SQL Server中的概念时,会觉得比较难理解,甚至感觉有点“绕”,这是因为Oracle中将某些其他数据库中存在的概念给简化了,这里就拿两个最常见的概念来举例说明:
1、schema:A schema is a container that holds tables, views, procedures, and so on. It is inside a database, which is inside a server. These entities fit together like nested boxes. The server is the outermost box, and the schema is the innermost box. It holds all of the securables listed below. But it cannot hold another box.
上面“schema”的概念,可以翻译成“模式”,这里说是各种数据库对象的容器,其实,也就是一个数据库对象的逻辑集合,这个概念,不仅仅在SQL Server里有,在其他很多关系库里也有,只不过在Oracle中对这个概念进行了弱化,将模式(schema)与用户(user)设计成了一一对应的模式,很多Oracle用户甚至没有模式的概念,只有用户的概念。而在SQL Server里,模式和用户是两个分离的概念,模式是数据对象的容器,而用户是访问数据库的方式和途径,用户可以拥有模式,模式也可以与用户分离,在用户间转换,甚至游离于任何数据库用户。SQL Server中文联机文档里,将schema翻译为架构,大家知道是一回事儿就可以。
2、logical Operators和physical Operators
1)Logical Operators:Logical operators describe the relational algebraic operation used to process a statement. In other words, logical operators describe conceptually what operation needs to be performed.
2)Physical Operators:Physical operators implement the operation described by logical operators. Each of the physical operators is an object or routine that performs an operation. For example, some physical operators access columns or rows from a table, index or view. Other physical operators perform other types of operations: The Aggregate operator calculates an expression containing MIN, MAX, SUM, COUNT or AVG, and the Merge Join operator performs different types of logical join operations.
这里讲的逻辑操作(logical Operators)和物理操作(physical Operators)是指SQL语句执行计划中的各个操作,这点SQL Server有点特殊,非得把执行计划的一个步骤分为逻辑操作和物理操作,前者是逻辑概念,后者是前者的具体选择和实现,这点来说,Oracle更简单些,执行计划中直接给出了具体的操作,也就是这里的物理操作,没有明确逻辑操作的概念,其他数据库中,记得也没有这层概念(记得是这样,但不是很确定),感觉多个逻辑概念有点“多余”,也许是微软想让大家阅读分析执行计划时,给大家一个对每个步骤中操作的概念吧。
从以上两点来看,SQL Server中的概念一般分的更细致,层级更多,各个概念之间也分离的更加清晰,但对用惯了Oracle等其他数据库的用户来讲,开始可能要多适应和理解这点了。
SQL Server“复杂”概念之理解的更多相关文章
- SQL Server Alwayson概念总结
一.alwayson概念 “可用性组” 针对一组离散的用户数据库(称为“可用性数据库” ,它们共同实现故障转移)支持故障转移环境. 一个可用性组支持一组主数据库以及一至八组对应的辅助数据库(包括一个主 ...
- SQL Server执行计划的理解【转】
要理解执行计划,怎么也得先理解,那各种各样的名词吧.鉴于自己还不是很了解.本文打算作为只写懂的,不懂的懂了才写. 在开头要先说明,第一次看执行计划要注意,SQL Server的执行计划是从右向左看 ...
- SQL SERVER中架构的理解
在sqlserver 2005中,可能大家在工作或学习的时候会经常发现这样一些问题,你使用一个账户在数据库中创建了一张表,却发现你自己创建的表却没有修改和查询的权限,这是一件很郁闷的事情,在sqlse ...
- SQL Server 死锁概念和分析
锁的概念 锁是什么 锁是数据库中在并发操作情形下保护资源的机制.通常(具体要看锁兼容性)只有锁的拥有者才能对被锁的资源进行操作,从而保证数据一致性. 锁的概念可分为几部分 锁资源(锁住什么) 锁模式( ...
- SQL Server 执行计划的理解
要理解执行计划,怎么也得先理解,那各种各样的名词吧.鉴于自己还不是很了解.本文打算作为只写懂的,不懂的懂了才写. 在开头要先说明,第一次看执行计划要注意,SQL Server的执行计划是从右向左看的. ...
- Sql Server 游标概念与实例
引言 先不讲游标的什么概念,看如下Sql Server2008 图例: 需求:两张表的O_ID是一一对应的,现在求将加薪的工资+原来的工资=现在的工资,也就是O_Salary=O_Salary+A_S ...
- 对MySql查询缓存及SQL Server过程缓存的理解及总结
一.MySql的Query Cache 1.Query Cache MySQL Query Cache是用来缓存我们所执行的SELECT语句以及该语句的结果集.MySql在实现Query Cache的 ...
- SQL Server 中函数的理解总结
T-SQL语言为我们提供了更加灵活的方式操作数据,那就是函数,函数总的分为三大类:标量函数:(传入一个参数,再传出一个参数)聚合函数(传入多个参数,传出一个参数),表值函数(传入一个结果集对象,让我们 ...
- sql server dba概念系列引用
原文转自:https://www.cnblogs.com/gaochundong/p/everyone_is_a_dba_sqlserver_architecture.html <人人都是 DB ...
随机推荐
- JAVA之经典算法
package Set.Java.algorithm; import java.util.Scanner; public class algorithm { /** * [程序1] 题目:古典问题:有 ...
- ERR! registry error parsing json
报错日志: ERR! registry error parsing json ERR! registry error parsing json 解决过程: 从github上克隆一个项目,在npm i的 ...
- Java——文件及目录File操作
API file.listFiles(); //列出目录下所有文件及子目录fileList[i].isFile() //判断是否为文件 fileList[i].isDirectory() //判断是否 ...
- mysql-5.6.41-winx64安装
安装包 链接:https://pan.baidu.com/s/11-Ts3SrfJViQEtdtI_ik9w 提取码:cxt3 1.解压 将下载好的mysql-5.6.41-winx64.zip的安装 ...
- java正则常用记录
1. java中 字符串的某个字母是否有某个指定字符N : for(int i=0;i<temp.length();i++){ if( temp.get(i).substring(0,1) ...
- asdasda
git://git.coding.net/lick468/wf.git git地址:https://git.coding.net/lick468/wf.git
- JAVA基础知识总结:二十
一.网络编程基础 1.概念 所谓计算机网络,就是把分布在不同区域的计算机与专门的外部设备使用通信线路连接成一个规模大,功能比较强的网络系统,从而使得计算机之间可以相互通信,共享资源 所谓的网络编程,在 ...
- echart 注意事项-初始化和销毁
net5x 博客园 首页 新随笔 联系 管理 订阅 随笔- 21 文章- 186 评论- 4 ECharts图表初级入门(三):ECharts对象的数据实例化方法汇总以及注意事项 [摘要]: ...
- js判断手指的上滑,下滑,左滑,右滑,事件监听
原理:1:当开始一个touchstart事件的时候,获取此刻手指的横坐标startX和staerY: 2:当触发touchmove事件的时候,再获取此时手指的横坐标moveEndX和纵坐标moveEn ...
- three.js 制作一个简单的圆柱体模型
<!DOCTYPE html> <html lang="en"> <head> <title>three.js webgl - or ...