SQL Server介绍

学习文档

SQL2016以上文档

SQL2005至SQL2014文档

SQL Server 驱动程序开发

集群

表变量和临时表的比较

自己整理:数据库调优

SQL server和MySql简单对比

SQL server

  • Windows首选,跨平台性不好
  • 重量级
  • 功能丰富,性能略优
  • 不开源

MySql

  • Linux首选,跨平台性好
  • 轻量级
  • 功能少一点,性能略差
  • 开源

数据库设计

主键

主键必须是唯一的,且要依赖索引,可以是聚集索引或者非聚集索引

索引

聚集索引

聚集索引基于聚集索引键按顺序排序和存储表或视图中的数据行。 聚集索引按 B 树索引结构实现,B 树索引结构支持基于聚集索引键值对行进行快速检索。

一个表只能有一个聚集索引

参考:B树、B+树详解

非聚集索引

非聚集索引中的每个索引行都包含非聚集键值和行定位符。 此定位符指向聚集索引或堆中包含该键值的数据行。 索引中的行按索引键值的顺序存储,但是不保证数据行按任何特定顺序存储,除非对表创建聚集索引。

约束

查询全部约束

```sql

SELECT * FROM INFORMATION_SCHEMA.CONSTRAINT_TABLE_USAGE

```

堆(没有聚集索引的表)
列存储索引

参考:SQL Server 列式存储的优缺点

  • 大数据超长字段的模糊搜索like '%%'超快
  • 更新陈本高:适合更新不太频繁的表

 

全文搜索

 

 

分区表、分表、分库

参考:

MySQL数据库之互联网常用分库分表方案

为什么需要分库分表

MySQL分区表、分库表原理和使用场景介绍

阿里P8架构师谈:数据库分库分表、读写分离的原理实现,使用场景

分区表

参考:

MSSQL2008分区表

SQL Server表分区

概念:分区表是将大表的数据分成称为分区的许多小的子集,类型有FAT16,FAT32,NTFS,exFAT,Ext2/3/4,HFS+,VMFS。另外,分区表的种类划分主要有:range(范围)、list(列表)和hash(散列)分区。划分依据主要是根据其表内部属性。同时,分区表可以创建其独特的分区索引。倘若硬盘丢失了分区表,数据就无法按顺序读取和写入,导致无法操作。

适合场景:

  • 单张表数据达到千万级别的时候考虑分区表,一般按年或者按月分
  • 历史数据不常用,一般只用最近日期数据的表,例如与时间有关的表:打卡记录表、日志、消费记录等

分表

适合场景:

  • 大数据量且访问频繁的表

分库

 

Transact-SQL (T-SQL)

查询

WITH common_table_expression(CTE)

参考

概念:指定临时命名的结果集,这些结果集称为公用表表达式 (CTE)

使用范围:可用于查询语句、函数、视图、存储过程、触发器

优点:

  • 提高代码可读性
  • 复用,提高性能
  • 可递归 (注意:默认递归次数是100,不建议更改此项,避免死循环)

 

分页

参考:

SELECT - ORDER BY 子句

分页实现:Offset-Fetch

 

XML

 

参考

 

事务

参考:

事务

事务锁定和行版本控制指南

SQL事务

 

安全性

 

管理、监视和优化

管理

监视

优化

 

架构 SCHEMA

可以自定义架构,预定义的架构有:

  • dbo:最常见,表、视图、存储过程、函数等,默认都是使用dbo架构
  • sys
  • guest
  • INFORMATION_SCHEMA

 

跨服务器操作数据库

--创建远程服务连接及登录
exec sp_addlinkedserver 'RemoteServices', ' ', 'SQLOLEDB ', 远程数据库实例地址'
exec sp_addlinkedsrvlogin 'RemoteServices', 'false ',null, 'sa', 'sa密码'
--跨服务器查询
select * from RemoteServices.gdgroup.dbo.表名

 

posted @ 2020-12-31 23:22  日积月累码农  阅读(657)  评论(0编辑  收藏  举报