摘要:题目:http://beyondrelational.com/puzzles/challenges/96/break-a-long-sentence-in-groups-of-5-words.aspx数据:id comment-- ---------------------------------------------------------------------1 The upcoming release of SQL Server is codenamed Denali. It is also called SQL11 which refers to version 11 and pe
阅读全文
摘要:在sqlservercentral上看到一个挑战sql的题目,原文地址:http://beyondrelational.com/puzzles/tsql/61/english/generate-an-html-calendar-in-tsql.aspx实现一个日历:代码如下:IF OBJECT_ID('TC61_Quiz','U') IS NOT NULL BEGIN DROP TABLE TC61_QuizENDGOCREATE TABLE TC61_Quiz( ID INT IDENTITY, QuizName VARCHAR(255))GOINSERT I
阅读全文
摘要:1. 统计没用使用过的索引:如果有聚集索引,则表为B-Tree如果没有聚集索引,则表为Heapselect b.name ,a.name ,a.index_id,c.object_id from sys.indexes ainner join sys.tables bon a.object_id=b.object_id and a.name is not null left join sys.dm_db_index_usage_stats con a.object_id=c.object_id and c.database_id=db_id()and c.index_id<>0 -
阅读全文
摘要:SSIS抽取Excel每个sheet页的数据流程1.总体流程图 2.数据流任务3. 源数据连接管理器如果需要循环文件下的所有excel文件,只需要再在外层加一个循环。
阅读全文
摘要:CREATE PROCEDURE [dbo].[sp_generate_insert_script] @tablename_mask VARCHAR(30) = NULLAS BEGIN DECLARE @tablename VARCHAR(128) DECLARE @tablename_max VARCHAR(128) DECLARE @tableid INT DECLARE @columncount NUMERIC(7, 0) DECLARE @columncount_max NUMERIC(7, 0) DECLARE @columnname VARCHAR(30) DECLARE @co
阅读全文
摘要:在应用事务复制分区表时,默认情况是不会复制分区函数和分区构架的,也不复制分区切换。解决方法如下:--默认发布是不会启用 “分区切换”以及分区DDL的。所以修改发布的属性EXEC sp_changepublication @publication=N'ps1',@property=N'allow_partition_switch',@value=N'true';--启用SWITCH DDL 复制EXEC sp_changepublication @publication=N'ps1',@property=N'replicat
阅读全文
摘要:Internals Viewer 是微软内部分析数据存储工具,对研究Sqlserver底层数据分配有很大的帮助,适用MSSQL2005/08主页:http://internalsviewer.codeplex.com/releases/view/21139界面如下:
阅读全文
摘要:通常业务系统不推荐使用游标,但是又要实现游标逐行处理功能,在mssql中实现方法如下:1.导入临时表,建立行ID逐行搜索或者每次TOP(1)查找2.导入表变量,建立行ID逐行搜索至于临时表和表变量主要区别在于大数量搜索时的查找时间长短,临时表是存贮在磁盘,表变量是在内存临时表导入数据时需要两次IO读写,表变量只有一次,临时表可以建立索引,表变量不能,所以在大数据复杂操作时,临时表利用索引查找的速度能提供不少实现脚本如下:--准备数据IF OBJECT_ID('tb_a') IS NOT NULL DROP TABLE tb_aCREATE TABLE tb_a(ph VARCH
阅读全文
摘要:通常业务系统遇到性能问题时,需要查找原因,Sqlserver为我们提供了RML工具分析此问题分析方法如下: 1. 打开profile跟踪 选择 Audit Login,Audit Logout,RPC:Completed,RPC:Starting,SQL:BatchCompleted,SQL:BatchStarting事件选择DataBaseID 和DataBaseName 列开始跟踪,一般跟踪两个小时作业左右的日志文件,可以图形界面也可以用job定时调用(之前介绍过) 2.得到.trc文件之后,安装RMLSetup_X86.msi,并在本地安装,本机安装路径如下:C:\Program Fil
阅读全文
摘要:通常我们需要从不同的数据库抽取数据到一个集中汇总点,这里使用SSIS包方式 例如我们从三个库的B表抽取数据到另一个库的A表 建表语句: CREATE TABLE svrlist ( id INT NOT NULL IDENTITY(1,1) PRIMARY KEY, dbname VARCHAR(20) ) INSERT INTO svrlist (dbname) SELECT 'db1' UNION ALL SELECT 'db2' UNION ALL SELECT 'mhsh_monitor' 1.在BIDS中新建Integration Se
阅读全文
摘要:之前碰到同事为了安全在Sqlserver中删除了系统登录用户,同时sa的密码又忘记了,此时无法登录数据库解决方法:1. 停止mssql服务2.在sqlserver配置管理工具中,属性->高级-启动参数加入 -m;(单用户登录模式) 如图 然后启动服务,选择windows登录,添加系统账号,赋予sysadmin权限 停止服务,去掉-m;启动参数,ok。
阅读全文
摘要:-- 定义参数 declare @rc int declare @TraceID int declare @maxfilesize bigint set @maxfilesize = 5 -- 初始化跟踪 exec @rc = sp_trace_create @TraceID output, 0, N'd:\log\deadlock', @maxfilesize, NULL --此处的d:\log\deadlock是文件名(可自行修改),SQL会自动在后面加上.trc的扩展名 if (@rc != 0) goto error -- 设置跟踪事件 declare @on bit
阅读全文
摘要:今天在创建一个表的时候,发现在mssql05上创建成功,08上报错 CREATE TABLE TA ( id INT, writetime DATETIME, wk AS (DATEPART(wk,writetime)) persisted )消息 4936,级别 16,状态 1,第 1 行无法持久化表 'TA' 中的计算列 'wk',因为此列不具有确定性。其实就是计算列的持久化与非持久化的问题,persisted:表示数据持久到本地硬盘中如果是非持久化,数据则不保存在硬盘,而是在内存中查询的时候计算一次,这对于大数据量存在性能能力对于上述的报错,参考资料如下函
阅读全文
摘要:直接上代码,按月实现数据分区,归档USE [db2]GO/****** Object: StoredProcedure [dbo].[partion_MoveScheme] Script Date: 04/20/2011 18:41:07 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER PROC [dbo].[partion_MoveScheme]AS BEGIN DECLARE @nextpartition DATETIME, @curdate DATETIME SET @curdate = '2011-7-1
阅读全文
|