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%时使用,并且在使用时根据实际情况选择需要释放的缓存项,其他情况不建议使用。

     

     

     

     

     

  • 相关阅读:
    MySQL-基本sql命令
    Java for LeetCode 203 Remove Linked List Elements
    Java for LeetCode 202 Happy Number
    Java for LeetCode 201 Bitwise AND of Numbers Range
    Java for LeetCode 200 Number of Islands
    Java for LeetCode 199 Binary Tree Right Side View
    Java for LeetCode 198 House Robber
    Java for LeetCode 191 Number of 1 Bits
    Java for LeetCode 190 Reverse Bits
    Java for LeetCode 189 Rotate Array
  • 原文地址:https://www.cnblogs.com/chenqs/p/6196704.html
Copyright © 2011-2022 走看看