zoukankan      html  css  js  c++  java
  • Sql Server 常用操作2

    FOR XML PATH应用

    stuID学生编号,sName代表学生姓名,hobby列存学生的爱好!          

    SELECT B.sName,LEFT(StuList,LEN(StuList)-1) as hobby 

    FROM (

    SELECT sName

    ,SELECT hobby+',' FROM student   WHERE sName=A.sName   FOR XML PATH('')) AS StuList

    FROM student A 

    GROUP BY sName 

    ) B 

     

    -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

     SSMS 登录框内保存的登录信息如何清除

    经常使用SQL Server Management Studio(后文简称SSMS)连接不同服务器以后,会在登录框内留下很多服务器的记录,很多可能只是偶尔连接或者服务器现在已经不可用了,总摆在那里有点碍眼,特别对于有强迫症的人。那么这些不用的服务器信息怎么清理呢?

    如果使用的SSMS版本是2012或者2014,那么有福了,SSMS本身就提供了删除服务器信息的功能。

    删除方法:以2012版SSMS为例

    如上图,首先在下拉列表里选中要清除的服务器信息,假如要清除“测试实例3”这个服务器的信息,先点击“服务器名称”下拉框,之后用键盘上的上下键来选中“测试实例3”,切记键盘选中以后不要用鼠标点击服务器名称框!之后按键盘上的Del键,看到了吗?下来列表里已经没有“测试实例3”了。但是“服务器名称”里怎么还有?不用着急,用鼠标点击其它服务器名以后“测试实例3”就会彻底消失了。当然,要使设置永久保存下来,需要正常关闭SSMS。

    2008 R2以及之前版本的SSMS不支持这种清除方法。

    对于2008 R2版本SSMS来说,要想有选择性的清除,本身是做不到的,但是可以利用2012或者2014的SSMS来间接进行清除。

    2008 R2、2012、2014版的SSMS保存服务器信息的配置文件格式是相同的,所以可以把2008 R2的配置文件放在2012或者2014的配置目录里,之后启动相应版本的SSMS来操作。有个问题,这么做是不是有点蛋疼?都有了更高版本的SSMS了为什么还用低版本的SSMS?这个嘛,因人而异,安装多个版本的SSMS有时候也是为了测试需要或者其它目的……

    2008 R2版的配置文件位于%APPDATA%MicrosoftMicrosoft SQL Server100ToolsShell 目录,可以复制这个地址到地址栏里直接访问,配置文件是SqlStudio.bin 。

    2012版的配置文件是%APPDATA%MicrosoftSQL Server Management Studio11.0SqlStudio.bin ,

    2014版的配置文件是%APPDATA%MicrosoftSQL Server Management Studio12.0SqlStudio.bin 。

    2008版的清除方法与2008 R2理论上应该一样,由于没有测试环境,所以就不进行验证了。

    如果现在还在使用2005版的SSMS,那么没有选择性清除的方法。但是可以做得绝一些——把SSMS的设置完全清除。当然,如果登录框中有很多重要的信息需要保存,为了不让这些信息丢失,可以先将有用的信息以“已注册的服务器”的形式保存下来。如何添加“已注册的服务器”就不说了,知道怎么用的自然知道怎么添加。

    好了,有用的信息保存下来以后。可以开始干了。2005版SSMS的配置文件位于%APPDATA%MicrosoftMicrosoft SQL Server90ToolsShell目录,文件名是mru.dat。

    直接把mru.dat删除,之后启动SSMS,这时候SSMS是刚安装以后的初始状态,登录框中也就不包含任何保存的信息了。当然,这种做法针对2008及以后版本也同样适用,只要删除相应配置文件就可以了。

    -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    释放数据库占用的服务器内存

    USE master

    GO

    CREATE  proc  [dbo].reclaimmemory

    as

    Begin

     DBCC FREEPROCCACHE                      

    --删除计划缓存中的所有元素(计划缓存作用:完全相同语句第二次的执时免编译;命中率不高会造成内存浪费.

     DBCC  FREESESSIONCACHE             

    --刷新针对实例执行的分布式查询所使用的分布式查询连接缓存。(分布式查询连接缓存作用:提高IO的性能 )

    --此操作会在短时间(5-10分钟)内造成IO,IO等待,和带宽使用量的大幅度升高

     DBCC FREESYSTEMCACHE('All')       

    --释放所有当前未使用的缓存(包含数据缓存)(慎重选择)

    --基本相当于重启SQL SERVERE服务

     DBCC DROPCLEANBUFFERS              

    --释放所有缓存(慎重选择)

    --基本相当于重启SQL SERVERE服务

    --以上四个操作可以根据需要选择其中的一个或多个,这四个操虽然释放了缓存,但SQL SERVER并没有释放占用的内存。

    EXEC sp_configure 'show advanced options', 1;   --打开高级设置选项

    EXEC ('RECONFIGURE' )

    exec sp_configure 'max server memory', 10240;  

    --设置最大内存值(MB) (不要设置的太小)

    --此操作是为释放SQL SERVER占用的内存

    EXEC ('RECONFIGURE' )

    WAITFOR DELAY '00:00:03'    --等待3秒

    EXEC  sp_configure 'max server memory', 2147483647;       --将最大内存值还原为原来的数值

    EXEC ('RECONFIGURE' )

    EXEC sp_configure 'show advanced options', 0;   --关闭高级设置选项

    EXEC ('RECONFIGURE' )

    end

    -- EXEC  reclaimmemory     --执行存储过程

    建议此方法在服务器内存长时间超过95%时使用,并且在使用时根据实际情况选择需要释放的缓存项,其他情况不建议使用。

     

     

     

     

     

  • 相关阅读:
    JavaScript中的事件
    JavaScript中的String
    和Java相关的一些好文章(不定期更新)
    大端序小端序
    C语言中const的正确用法
    skynet源码分析之网络层——Lua层介绍
    skynet源码分析之网络层——底层介绍
    skynet源码分析之定时器skynet_timer.c
    skynet源码分析之lua层消息处理
    skynet源码分析之snlua服务的启动流程(二)
  • 原文地址:https://www.cnblogs.com/chenqs/p/6196704.html
Copyright © 2011-2022 走看看