SQL Server 实战笔记
文章平均质量分 94
探索 SQL Server 体系结构,优化原理,高可用,云计算,以及分布式应用专题;记录 SQL Server 开发与管理的实战案例
dbLenis
Even the longest journey begins with a single step
展开
-
零基础 SQL 数据库小白,从入门到精通的学习路线与书单
一,学SQL的苦恼我观察了 865 个 SQL 入门者,发现大家在学习 SQL 的时候,最大的问题不是 SQL 语法,而是对 SQL 原理的不熟悉。很多初学者,往往被 SQL 能做什么,为什么会有 SQL 这门语言给迷惑到了。他们用学英语的方法,去学SQL,结果发现什么都学不到,而且感觉越来越难学,难用。想想你为什么讨厌英语就明白了,每次翻开词典,从 abandon 学起来,不到 10 页就...原创 2019-12-16 22:58:45 · 6716 阅读 · 3 评论 -
传说中 6 个月都未必能全解开的 3 道 SQL 题,来挑战下?
点击蓝色“有关SQL”关注我哟加个“星标”,天天与6000人一起快乐成长很久没怀疑过自己的智商了,直到遇见这 3 道题。你也来试试!这 3 道巨难的题目,来自 itpub 的 SQL 数据库编程大赛。说起 itpub 就不得不说它与 Oracle 的渊源,多少大师都在这里诞生。想成为 SQL 大师,有个最快的方法,就是刷题。如果能刷遍这里的题,Oracle 工作,十拿九稳。当...原创 2019-12-13 23:24:13 · 1293 阅读 · 2 评论 -
如何提高阅读 SQL 源代码的快感
今天的小 C 很不在状态。昔日的她,一大早肯定不会愁容满面,似乎像是星巴巴没有喝够的样子,兴奋不起来!11:30了,很少听到她 HHKB 落键的清脆声,一定是遇到难题了!“怎么,今天的热焦玛少了点劲儿嘛,感觉?”我走近了小 C。“L, 谁面对着满屏的 SQL 都会提不起精神啊。何况这近 1500 行的代码,怎么看得过来嘛!看了中间忘了开头,看到结尾,前面的全忘光了,好烦呀”...原创 2019-12-12 08:15:00 · 544 阅读 · 0 评论 -
深扒SQL的历史,说点秘密给你听
01,本文导读很多学SQL的朋友,或正在用SQL的朋友,都感觉到害怕,最近兴起的大数据,NoSQL会不会终结了SQL的命运,这帮只会SQL的朋友,怎么办?想学吧,又没精力,不学吧,提高不了自己,不能升职加薪!想要彻底看懂局势,还得从两家的历史谈起,今天就先谈谈SQL的起家史。02,IBM时代说起关系型数据库,始终离不开IBM,更离不开那篇论文。...原创 2019-11-10 17:09:45 · 533 阅读 · 0 评论 -
学SQL的好地方,推荐你收藏
好多朋友加我的第一个问题,都是“在哪里可以学到小白入门的SQL知识”。在我们SQL大数据玩家微信群里,讨论最多的也是SQL基础语法的问题,比如 Left Join丢数据啦,Case When 转换出错啦,等等。今天我就推荐一些常用的入门网站,希望可以帮到这些朋友。基于小白入门介绍的材料上,再加一些个人比较喜欢的SQL晋级者可以汲取营养的地方。当然推荐的材料及课程都是在线免费的...原创 2019-10-13 08:29:45 · 414 阅读 · 0 评论 -
6 图助你理解 SQL 优化策略
写在前抱歉,这估计又是一篇 CRUD Boy/Girl 读起来费劲的文章!玩 SQL 1 - 2 年的朋友,对于 Execution Plan (执行计划)估计不陌生了。但也有特例,3 - 4 年的朋友有时候也不知道如何查看 Execution Plan. 这事儿我还真见的不少。2010 年我在百胜做 ERP 的时候,有个呆了 2.5 年的 BI(Business Intelligence)...原创 2019-01-22 22:38:17 · 375 阅读 · 0 评论 -
SQL 运行时性能统计信息的获取
打个招呼,这一篇可能不适合 CRUD Boy/Girl. 纯做增删改查的 SQL 编码师可能会觉得偏难。假设如下的存储过程,有两段 SQL 查询组成。执行时发现,响应很慢。请问你该怎么办?有同学说,看阻塞情况,这样的:找到伤害你的元凶了,该报仇报仇,该抱怨就抱怨。又有同学说,看执行计划,这样的:这两种做法都可以尝试,且对调优也有相当的帮助。但今天要探讨的是另外一种方法,运行时获取...原创 2019-01-18 23:15:14 · 372 阅读 · 0 评论 -
SQL 数据库满载,Redis 力挽狂澜
为什么你的 ERP/MES/CRM/HR/OA 系统访问首页都很慢,明明你确定打开页面时没有大量的写入操作!或许是时候了解下缓存了。一次实战:在 SQL Server 前加层 Redis步骤:1 - Python 中启动 5000 根线程同时访问 SQL Server, 执行存储过程,并记录每次请求响应时间和 Windows Server 的服务器状态;2 - 安装 Redis, 并将步...原创 2018-12-28 22:41:11 · 473 阅读 · 1 评论 -
Spark 高难度对话 SQL Server 后记
GIIS (Global Information Industry Summit)峰会已经结束一周了。从拉斯维加斯回来的 L 却依然兴奋,被冷冰的 SQL Server , Oracle 门票价挫伤之后,阴差阳错进入了另一片广袤的技术天地。对于技术宅,莫过激起他研究到底的雄心,而此时的大数据生态正好给了 L 一味兴奋剂,而且剂量不低于 500CC.目睹了 Spark 与 SQL Server...原创 2018-11-02 00:43:09 · 252 阅读 · 0 评论 -
SQL 开发应有的一种思维
微信群的朋友们,提出的问题也是越来越有味道了。可能有些读者会笑话我说,别人要你帮忙免费解决问题,你还觉得有趣,傻瓜!但我觉得,做这样的傻瓜还确实挺有趣,收获远比其他某些付费却无趣的问题,多得多! *那位拿起搬砖或者准备取关的朋友,先消消气,听我讲个故事。故事主人公是 艾萨克·巴什维斯·辛格,美国犹太人,用希伯来语和意第绪语写作。在 The New York Times 和 Parti...原创 2018-10-28 22:17:44 · 413 阅读 · 0 评论 -
出色的 SQL 编码师成长进阶路线
学习就是一个不进则退的过程,不是带节奏,而是事实。更高一级的工程师,需要克服的困难,读的书,读的 paper,会逐级加深,比如你还在读数据库实现的时候,人家已经在研究分布式存储的原理与实现了。你说不想那么累,只想找一种半衰期长的技术混口饭吃,也是一种生活态度。没有什么不好,只是个人兴趣罢了。你或许产品观很强烈,对产品的理解跟二爷甚至乔帮主那么深邃,是个出色的产品经理;你或许会三四门外语,跟印...原创 2018-10-21 09:53:26 · 707 阅读 · 0 评论 -
Spark 高难度对话 SQL Server 续篇
GIIS (Global Information Industry Summit)峰会已经进行如火如荼进行了半程。商业数据库这边明显已经冷了下来,$1100 一天的峰会价格,并不是每个企业都吃得消,再者,在东半球上海举行的 QCon 已经吸引了更多的关注,那里的互联网应用似乎更加吸引资本的青睐,入会价格同样不低,接近 6K RMB ,好在是全场票。L 这两天拿着 Spark, Hive, Had...原创 2018-10-19 07:53:14 · 1009 阅读 · 0 评论 -
开箱即用的 SQL Server Docker 之二
Docker 与 SQL Server 之一,讲的还只是 Docker 的一些基础概念,这篇将 Docker 应用在 SQL Server 上,包括这些主题: 在 Docker 上制作 SQL Server 镜像 Docker 发布 SQL Server 参考:https://docs.microsoft.com/en-us/sql/linux/quickstart-...原创 2018-09-03 21:57:32 · 5532 阅读 · 0 评论 -
开箱即用的 SQL Server Docker
SQL Server 真是越来越有看头。当我们还在为 Linux 上运行 SQL Server 而兴奋的时候,SQL Server 已经开启了 容器化之路,至此才能看清微软的胸怀,开始拥抱更大的世界。当我越来越深入去阅读有关 Docker 容器的文档,已然发现曾经部署上千台 Linux MySQL 的场景,如今在 Docker 的帮助下,SQL Server 也是手到擒来。如果 SQL Serve...原创 2018-09-03 21:55:34 · 1036 阅读 · 0 评论 -
Availability Group On Linux 搭建后记
create availability group [InvestorAG] with (db_failover=on,cluster_type=external) for replica on &nb原创 2018-08-29 07:36:00 · 928 阅读 · 0 评论 -
Linux 上配置 SQL Server Always On Availability Group
SQL Server Always On Availability Group 配置步骤:配置三台 Linux 集群节点创建 Availability Group配置 Cluster Resource Manager, 比如 Pacemaker在集群中添加 Availability Groups 详细解说1. 配置三台 Linux 集群节点在集群中的三台服务器之间...原创 2018-08-29 07:32:37 · 3007 阅读 · 1 评论 -
Linux 版本的 SQL Server 快速安装
SQL Server 2017 版本已经支持 Linux 安装了,出来了很长时间,我还没有实现过在 Linux 上面的应用,包括安装和高可用配置。本文就先尝试完成 Linux 版 SQL Server 的安装。经常在 Windows 下安装 SQL Server 失败的同学们有福了,因为按照下面的步骤,不超过 15 分钟,你就可以直接体验 SQL 开发之旅!SQL Server 在 Cen...原创 2018-08-13 22:55:32 · 21881 阅读 · 3 评论 -
0 秒实现 100 年数据的自动生成
做测试或者生成数据仓库中的日期维度时,我们需要生成某一时间段的连续日期。大部分时候我们会用循环插入的方式来实现,但看了《High Performance T-SQL Using Window Functions》的朋友可能会有另一种方式。先是建立表结构,简单的两个字段,一是日期,二是周几CREATE TABLE dbo.DimTime(CurrentDay DateTime, Curr...原创 2018-07-14 08:32:26 · 401 阅读 · 0 评论 -
为什么读懂执行计划对你是那么重要
一条俊俏的 SQL 被一个懵懂的少年,扔向了深远的 TCP 隧道,少年苦苦等待,却迟迟等不来那满载而归。于是少年气愤,费尽苦心从度娘那边求来的一手好代码,等来的却是 timeout…如果你也正在经历着这些苦涩的等待,那么该了解执行计划了;如果你自认为执行计划已经了如指掌,那么你该读一读 SQL Server 2017 新特性, adaptive query processing , 我蹩脚的将...原创 2018-07-07 12:28:01 · 4556 阅读 · 0 评论 -
25K 月薪的 SQL Server DBA 面试一题
2010 年刚到上海, 在 HP 谋了一份商务智能的开发工作。做的是世界五百强的 ITIL 数据仓库项目。在这里见识到了书上讲的一些工具和应用,比如 Kimball《维度建模》中提到的各种维度模型,数据仓库之父 Inmon 对于数据集市原型的理论,开发工具更是类目纷繁,SQL Server , Oracle, SSIS, SSAS, SSRS, SAP BusinessObjects, BIEE,...原创 2018-06-24 12:48:28 · 4400 阅读 · 0 评论 -
SQL 压力测试实战
针对数据库的测试,市面上已经有很多工具了,Google 上搜一下 sql testing tool , 他为你选出的工具,琳琅满目,看花双眼。比如:40+ Best Database Testing Tools - Popular Data Testing Solutions 这篇文章列举了总共 43 个测试工具,可以用来完成 SQL 的测试,包括生成测试数据,功能性测试,逻辑性测试,当然还有...原创 2018-05-13 11:55:27 · 8914 阅读 · 4 评论 -
Halloween Problem in SQL
有些问题,真的是你不知道自己不知道这回事,比如下面这例:在40年前的一个晚上,1970年左右,IBM 的一群研究员决定给不满25000美金年薪的雇员,增加10% 的薪水。他们写了一段 SQL,大意是这样的:update EmployeeSet Salary = Salary * (1 + 10%)where Salary < 25000结果等他们运行完毕,发现所有...原创 2018-05-12 11:02:28 · 396 阅读 · 0 评论 -
Cross Apply 与 Outer Apply 的区别
Cross Apply 与 Outer Apply 的区别,就像是 Inner join 与 Outer Join 的区别。Inner Join 如果两边的表,无论是 Left Table, 或者是 Right Table, 做了限制,都会被应用到两边去,即一方的结果影响了另一方的结果。而 Out Join 则不会,即处于 Right Table 位置的表,对它做的条件限制,并不会影响 Lef...原创 2018-05-11 22:22:38 · 4871 阅读 · 0 评论 -
数据应用系统的压力测试方案
好奇于数据库压力测试方案,这两天一直在思考如何对数据库做压力测试。 在数据应用系统上线前,测试数据库能接收多少并发量,能够给自己信心,对上线不影响用户体验有充分的把握。清楚哪一块是薄弱的地方,知道怎么去弥补。偶尔在 google 里面搜出来一个产品的测试方案基本用法,得以窥见成熟的商业方案。 英文链接如下: https://support.smartbear.com/loadcomple...翻译 2018-05-10 20:36:59 · 2316 阅读 · 0 评论 -
自动化赋值的 SQL 语句
不明就里的朋友,看上一篇就明白了,欠大家一份自动化赋值语句:Cross Apply 与 Inner Join 的对抗其文中提到了三张表的建表语句,如下:CREATE TABLE dbo.DimUser (UserID INT IDENTITY(1, 1),UserName NVARCHAR(200))GOCREATE TABLE dbo.FctOrderHead...原创 2018-05-04 23:19:58 · 2356 阅读 · 0 评论 -
用好三张 DMV, 检测 80% 的性能故障
很多同学遇到 SQL 性能问题,要么毫无头绪干着急,要么手忙脚乱瞎忙活。可谁不是从小工到大师呢,关键是要找到那条道。如果你也在寻找这条道,不妨一起来看看这里。用好三张 DMV, 检测 80% 的性能故障。-sys.dm_os_wait_stats -sys.dm_io_virtual_file_stats(NULL,NULL) -sys.dm_os_performance_co原创 2018-01-22 22:17:53 · 698 阅读 · 0 评论 -
SQL Server Performance 分析
对网络上的一篇博客做下笔记,适当扩展下对 Performance 各个涉及到的要素。这篇文章讲的是分析性能,老外写的:How to analyse SQL Server performance主要的要点有这些:· How does SQL Server work· Wait Info for currently executing requests· Aggregated wa原创 2016-05-03 21:31:57 · 11429 阅读 · 0 评论 -
Auditing SQL Server SQL Statements
“谁把我的表给删拉”,”谁删了整个表阿”…碰到这种棘手的情况,你如果没有预先做好准备,真的是头都要急炸了。那怎么能抓出这个”凶手”呢?SQL Trace, SQL Profile,SQL Trigger,Extended Events等着伺候你呢,更别说CLR,Service Broker等重量级武器了,别急!工具虽好,但是也得用得贴合场景才能发挥作用,要不然跟你的SQL Server抢IO,原创 2016-05-06 20:57:44 · 3548 阅读 · 0 评论 -
又谈 SQL Server Performance
SQL Server Statistics and Cost Estimation统计信息(Statistics)会干扰查询优化器(Query Optimizer)生成最优的执行计划。它存储的是表列或者索引列的数值分布统计,也称为柱状统计Histogram。统计信息的过期或者不充分,都能导致优化器评估成本模型(Cost-Based Estimation)失效。原创 2016-05-19 21:54:15 · 9911 阅读 · 0 评论 -
SQL Server 的备份与恢复
备份的三种形式:日志备份,差异备份,全备份原创 2016-06-23 22:19:17 · 12920 阅读 · 0 评论 -
真以为自己懂 Group By 了?
能一眼看懂这条语句在做什么吗?SELECT OrderMonth,City,Sum(OrderAmount) AS OrderAmount FROM dbo.FctSalesMonthly GROUP BY Cube(OrderMonth,City) ORDER BY OrderMonth DESC,City前两天我是真的认认真真在看 MSDN 的文档,我发现我们的开原创 2018-01-12 22:16:32 · 679 阅读 · 0 评论 -
SQL Server Replication II
Sql Server Replication Scripting Setup大概的一个拓扑, 我们将三种角色分别安装在三台不同的 sql server 服务器上 1.1 distributor 1.2 publisher, publication, article 1.3 subscriber , subscription 1.4 Agents , Schedulers简单的一个实原创 2016-07-06 20:35:19 · 4227 阅读 · 0 评论 -
SQL Server In Memory OLTP - 存储内幕浅谈
在启用了memory optimized OLTP的第一个版本sql server 2014中,memory optimized table的memory分配是无规则的,不像disk-based table一样,有一个page专门用来记录已经分配的表数据页的物理地址,这样一张表的数据,直接从这个page查询就能找到了。这种page叫做indexed allocated map page. 而在me原创 2017-12-05 21:32:25 · 1817 阅读 · 0 评论 -
SQL Server In Memory OLTP - MVCC 事务管理
讲讲SQL Server Memory Optimized Table的MVCC.从单个只访问memory optimized table的语句来讲,snapshot隔离机制本质上是MVCC,因此read uncommitted 和 read committed提供的隔离功能,它都实现了。或者说snapshot的读并不会被其他session的写给阻塞。所以可以理解为它的起点比较高,memory原创 2017-12-05 21:41:38 · 473 阅读 · 0 评论 -
SQL Server Storage
SQL Server中的哪些对象会占用磁盘空间? 看到标题的第一瞬间,让我想到的就是这个问题。下面我们就试着来讲一讲这个问题.第一个磁盘空间使用大头肯定想到就是表。表只是一个逻辑对象,又没有想过表这个逻辑对象是怎么在磁盘上存储的呢? 《数据库系统实现原理》或者叫做《Database System implementation》一书中对表的存储方式应该有更详尽的描述。我们只讨论SQL SERVE原创 2016-05-25 20:45:21 · 13227 阅读 · 2 评论 -
SQL Server Concurrency
SQL Server Concurrency原创 2016-05-20 21:52:13 · 9445 阅读 · 0 评论 -
SQL SERVER T-SQL Programming
T-SQL编程技巧汇总原创 2016-05-24 19:45:04 · 813 阅读 · 0 评论 -
SQL Server Change Data Capture
SQL Server CDC - Change Data Capture原创 2016-04-22 23:15:47 · 1432 阅读 · 0 评论 -
SQL Server Replication
sql server replication原创 2016-04-18 23:26:48 · 6895 阅读 · 0 评论 -
【万字详解】SQL 优化引擎内幕
本文首发于个人的知识星球,参考了网络上各类文章,感谢这些朋友们留下的宝贵材料和分享,让每个热爱 SQL 的人学到了更加深入的知识。本篇足足有 10945 字左右,大概需要花费半小时,感谢你的阅读!以下是正文SQL Server 的优化器是基于成本计算的,高质量的执行计划来自于对成本的准确估算。而整个计划成本的估算,则是基于对每一步操作或实现操作的每个算法的开销估算。...原创 2019-05-11 07:58:13 · 1154 阅读 · 1 评论