日度归档:2019年1月22日

mssql sqlserver 给已存在表添加新的字段及字段备注的方法


摘要:
下文讲述向已存在表上添加新字段及字段备注的方法,如下所示:
实验环境:sql server 2008 R2



1. 添加新字段及字段备注的语法
USE 数据库名
ALTER TABLE 表名 ADD 字段名 类型 默认值 是否为空;
EXEC sp_addextendedproperty N’MS_Description’, N’注释内容’, N’SCHEMA’, N’dbo’,N’TABLE’, N’表名’, N’COLUMN’, N’字段名’;


2.添加新字段及字段备注举例应用

 
  USE [testDataBase]
ALTER TABLE [testDataBase].[dbo].[testTable]  ADD  qty  INT  DEFAULT  1  NOT NULL;
---为表testTable新增列qty,并设置数据类型为int型和默认值0

EXEC sp_addextendedproperty N'MS_Description', N'领料数', N'SCHEMA', N'dbo',N'TABLE', N'testTable', N'COLUMN', N'qty';
---为列qty添加说明
 

mssql sqlserver 解决count 统计表行数速度慢的处理方法


摘要:
下文分享一种快速统计表行数的方法,如下所示:
实验环境:sql server 2008 R2


通过我们使用count统计全表行数时,都会涉及全表扫描,此时我们可以采用直接查阅系统表的方式,达到快速获取表行数。
如下所示:

 select rowcnt as [表行数] from sysindexes where id=object_id('表名称')

mssql sqlserver sql查询优化处理方法分享之(30秒慢查询优化)


摘要:
下文讲述一次sql慢查询的优化方法分享,如下所示:
实验环境:sql server 2008 R2


前几天同事反馈系统无法正常使用,经过在生产环境中多次跟踪发现,由于sql查询超时导致无法正常的返回可用数据,下文将sql语句记录如下

   ---例:
   --- [maomao_a]表80W行数据
   --- [maomao_b]表1000W行数据
   
   select * from [maomao_a] a left join 
    [maomao_b] as b  on a.keyId = b.keyId 
    where a.keyId in 
    (
        SELECT DISTINCT keyId FROM  [maomao_a]   
        WHERE extendkeyId  IN (99,100,119) GROUP BY extendkeyId HAVING count(keyId) > 8
    )

从上面的例子我们可以看出,首先进行关联查询,然后进行子查询–子查询中还进行相关的群组操作,
—-进行对上面的sql脚本分析:
1.单独进行 a 和 b表的关联查询速度很快
2.单独进行子查询速度也很快

当我们把子查询嵌套到关联查询中时,查询就变得非常慢
———–解决方法—–
我们将子查询单独生成一张数据表C
然后将a和b 生成的结果同数据表C进行关联,达到快速生成数据的效果。