SQL Server常见问题及解决方法分享

2020-07-04 05:58:41易采站长站整理

  你所不知道的SQL Server数据库启动过程(用户数据库加载过程的疑难杂症)

  你所不知道的SQL Server数据库启动过程,以及启动不起来的各种问题的分析及解决技巧  

数据库设计,表设计的问题

  大多数这样的问题,在QQ群里问是根本得不到答案的,很多业务场景不是几句话可以描述清楚的。  

SQL语句问题

  描述:SQL语句增加或者减少一个条件就变得很慢

  答:SQL语句的运行变化很微妙,需要理解执行计划,几句话或者贴个图无法解决,一些语句的习惯是需要养成的,请参见:

  SQL SERVER全面优化——-写出好语句是习惯

  SQL SERVER全面优化——-索引有多重要?  

AlwaysOn配置问题

  AlwaysOn配置问题请参见桦仔的几篇非常细致的文章:

  从0开始搭建SQL Server AlwaysOn 第一篇(配置域控)

  从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群)

  从0开始搭建SQL Server AlwaysOn 第三篇(配置AlwaysOn)

  从0开始搭建SQL Server AlwaysOn 第四篇(配置异地机房节点)

  2016的AlwaysOn 搭建:SQL SERVER 2016 AlwaysOn 无域集群+负载均衡搭建与简测

AlwaysOn新建用户

  首先要明白AlwaysOn可用组中:

  1.只有主节点是可以写入的,辅助节点只读

  2.权限分成两部分,实例级别“登录名”和数据库级别“用户”

  3.在主节点创建登录名称并选择数据库权限后,因为数据同步,所以从库上已经有了新创建用户的数据库权限,但是没有登录名。

  4.不能在辅助节点同样的方式创建登录名,这样就是“用户孤立”问题

  解决方法:  

  1.在主节点上直接添加的是“登录名”,比如创建一个登录名 KK

  2.选择数据库权限及用户映射

  3.查询刚才创建“登录名”的脚本(此脚本也可以用于升级或迁移数据库还原后,登录名同步的问题)  


CREATE PROCEDURE #sp_hexadecimal
@binvalue varbinary(256),
@hexvalue varchar (514) OUTPUT
AS
DECLARE @charvalue varchar (514)
DECLARE @i int
DECLARE @length int
DECLARE @hexstring char(16)

SELECT @charvalue = '0x'
SELECT @i = 1
SELECT @length = DATALENGTH (@binvalue)
SELECT @hexstring = '0123456789ABCDEF'
WHILE (@i <= @length)
BEGIN
DECLARE @tempint int

相关文章 大家在看