随笔分类 - (新) SQL Server
摘要:前言 我几乎从来没有遇到过性能问题, 毕竟项目真的太小了. 一般上只要用常识去建 index 就可以了. 但是这并不阻碍我对知识的追求. 这篇是关于一些性能优化和原理的内容. 纯属学习, 希望未来有机会用到. 参考 SQL Server – 树结构 (二叉树, 红黑树, B-树, B+树) (必看)
阅读全文
摘要:前言 上回在谈到 Concurrency 并发控制 时, 有提到过事务的概念. 这篇就补上它具体的实现. 以前写过相关的文章: sql server 学习笔记 (nested transaction 嵌套事务) Asp.net core 学习笔记 ( ef core transaction scop
阅读全文
摘要:前言 日常都是用 EF Core 来管理 Database, 偶尔也用 Management Studio, 就是很少手写 Command. 虽然网上一拉就有很多, 但是每次写单侧都要到处找还是挺烦的. 所以决定写一篇来记入起来. 创建 Table GO CREATE TABLE [Product]
阅读全文
摘要:前言 很久以前有学习过各种树结构, 但后来真的没有在实际项目中运用到. 毕竟我主要负责的都是写业务代码. 太上层了 但是忘光光还是很可惜的. 所以久久可以复习一下. 记得概念也好, 帮助思考. 参考: YouTube – How to Create Database Indexes: Databas
阅读全文
摘要:前言 续上一篇的 Soft Delete 后, 我们继续来看看 History Table (Audit/Archive Table). Archive Table 市场上有了这样叫, 但我觉得它比较杂, 因为它既保存了 History, 也多少记入 operation 和时间, 所以带有一点 Au
阅读全文
摘要:前言 Soft Delete 中文叫 "逻辑删", "软删除". 对比的自然就是 Hard Delete. 这篇想聊一聊它的好与坏, 什么时候可以考虑用它. Hard Delete 在说 soft delete 之前, 我们先来看看 hard delete. Hard Delete 其实就是普通的
阅读全文
摘要:前言 旧没用又忘记了, 又没有 intellisense, 记入这里吧. Reset Auto Increment DBCC CHECKIDENT ('TableName'); -- check current DBCC CHECKIDENT ('TableName', RESEED, 0); --
阅读全文
摘要:前言 以前写过相关的, 但这篇主要讲一下概念. 帮助理解 Entity Framework with MySQL 学习笔记一(乐观并发) Asp.net core 学习笔记 ( ef core transaction scope & change level ) sql server 学习笔记 (n
阅读全文
摘要:前言 JSON 是一个很好的格式, array, object 就能表达一个表格了. 如果想保存一些结构格式, 又不想用表格这么大费周章的话, JSON 会是很好选择. 比如我用它来记入 Audit Trial, 每一个请求的 post data 直接记入到一个 column 里面. SQL Ser
阅读全文
摘要:前言 久仰 dbo 大名, 但是一直没有认真去看它有啥作用. 今天翻看了一下 SQL Server sample database: AdventureWorks2019, 发现它用了许多 Schema 感觉像当 namespace 用, 于是好奇心下去查了一下 Schema. 主要参考 Sql S
阅读全文
摘要:前言 之前写过一篇, 但那个时候还没有开始用, 现在是要用了, 所以翻新一下呗. SQL server temporal table 学习笔记 主要参考: 官网 Temporal tables [译]SQL SERVER 2016 – Temporal Tables SQL Server ->> 深
阅读全文
摘要:前言 没有系统化学一本语言或技术, 那便会被一些冷知识坑. 这里做些记入. 变量作用域 SQL 是远古语法, 声明变量在最顶部就是一条上古法则. 如果我看见有了用这个法则写 C# 或 JS 我就会杀了它. 但是在 SQL 这条法则还真的不是没有用的呢. DECLARE @value INT 变量的作
阅读全文
摘要:参考: How To Use STRING_AGG – Concat Multiple Row Values In SQL Server 如果你想做 string.join(',', collection) 的话, 那么就可以使用 STRING_AGG 了 1. 简单用 SELECT STRING_
阅读全文
摘要:参考: Sql — CTE公用表表达式和With用法总结 YouTube – SQL WITH Clause | How to write SQL Queries using WITH Clause | SQL CTE (Common Table Expression) 特色 1. CTE 可以引用
阅读全文
摘要:参考: 在数据库中临时表什么时候会被清除呢 Temporary Tables And Table Variables In SQL 基本常识 1. 局部临时表(#开头)只对当前连接有效,当前连接断开时自动删除 2. 全局临时表(##开头)对其它连接也有效,在当前连接和其他访问过它的连接都断开时自动删
阅读全文
摘要:SUM 如果 row count = 0 返回的是 NULL 而不是 0 哦, 如果要 0 可以使用 ISNULL 来处理 如果其中一些 row 是 NULL, 那无所谓, 它只会 SUM 数字出来 如果全部 row 都是 NULL, 返回 NULL 其余的之后用到才写
阅读全文
摘要:介绍 冗余是维护的魔鬼, 是性能优化的天使 常见的冗余有 1. computed column 2. principal 的识别字段 3. cross computed 4. cascade soft delete 维护冗余的方案有很多. 比如 computed column, trigger, v
阅读全文
摘要:参考: SQLServer触发器详解(概述、工作原理、应用) CREATE TRIGGER (Transact-SQL) SQL Server Triggers and Transactions 以前写过的笔记 介绍 触发器适合用在维护冗余. 它可以监听指定 table 的 insert, upda
阅读全文
摘要:参考 SQL Server三种常见备份 SQL Server备份策略 以前写的笔记 目的 在发生意外 (人为删除, 磁盘坏掉) 之后, 让数据可还原到指定时间点上. Backup 的种类 备份分 3 种 Level Full Backup (所有数据 copy) Differential Backu
阅读全文