SQL Server找出最占存储空间的表

今天在有台服务器硬盘突然告警了,排查了一下发现是SQL Server的mdf文件太大,把硬盘给撑爆了。所以就有一个需求要在SQL Server里找出占用存储空间最多的表,进行清理。

下面是Amber和Qing贡献的一个SQL查询和运行效果。

CREATE TABLE #temp (   
table_name sysname ,   
row_count INT,   
reserved_size VARCHAR(50),   
data_size VARCHAR(50),   
index_size VARCHAR(50),   
unused_size VARCHAR(50))   
SET NOCOUNT ON   
INSERT #temp   
EXEC sp_msforeachtable 'sp_spaceused ''?'''   
SELECT a.table_name,   
a.row_count,   
COUNT(*) AS col_count,   
a.data_size   
FROM #temp a   
INNER JOIN information_schema.columns b   
ON a.table_name collate database_default   
= b.table_name collate database_default   
GROUP BY a.table_name, a.row_count, a.data_size   
ORDER BY CAST(REPLACE(a.data_size, ' KB', '') AS integer) DESC   
DROP TABLE #temp   

输出结果如下图所示

Table_Name

Row_count

Col_count

DataSize

tbl_TR_SubtaskTrail

26962623

12

48679192 KB

tbl_TR_TaskTrail

7656102

25

7120016 KB

tbl_TR_AuditTrail

3361530

8

3410224 KB

tbl_TR_TaskTrailUserAccess

23569366

5

2882992 KB

tbl_PCMT_PerfHistory_Raw

3835883

4

650904 KB

tbl_PCMT_PerfHistory_Hourly

1982372

4

342872 KB

tbl_TR_DeletedObject

1320476

4

279712 KB

tbl_PCMT_PerfHistory_Daily

1393939

4

193592 KB

tbl_WLC_VMInstance

12692

77

108144 KB

tbl_WLC_VNetworkAdapter

41212

42

100376 KB

tbl_PCMT_TieredPerfCounter

257699

41

95336 KB

小米手机安装驱动及打开USB调试

最近拿到2个新Android手机做开发用,分别是小米4和小米Note。这篇博文主要记录如何配置小米手机从而进行USB调试。

  1. 首先是要在PC机上安装驱动,豌豆荚一直提示无法装上,所以只好去小米官网现在驱动,手工安装,具体步骤是进入小米官网,点击最下方的服务支持下的相关下载链接,这时会进入资源下载链接,然后点击手机驱动就可以下载了。也可以直接从这个链接下载。下好驱动文件后,先解压到电脑里某个文件夹。
  2. 然后打开设备管理器,这时候应该会看到2个MI LTE的未知设备。设备前的感叹号表示小米手机还无法被当前系统识别,对2个未知设备分别点击右键,选择从步骤一里解压好的驱动位置更新驱动,更新完毕后应该会看到有一个Android Composite ADB Interface和Xiaomi Composite MDB Interface,这就表示驱动已经成功安装。image

    image

  3. 然后要启用开发者模式,从手机找到设置->关于手机->MIUI版本,连按几下就会自动启用开发者模式。
  4. 最后一步就是启用USB调试,从手机上找到设置->其他高级设置->开发者选项->USB调试就可以启用。

现在就可以通过USB连线的方式从小米手机上调试代码了,如果在开发环境里看不到小米手机的选项,记得看一下手机屏幕,一般是因为允许USB调试的对话框弹出的时候没有点确认引起的。

在Azure Ubuntu虚拟机上安装WordPress

之前楼主的WordPress网站都是跑在加拿大的一个Windows Server 2012服务器上,发布文章的时候总是感觉网络延迟有点大。并且网站长时间运行后,IIS会间歇性的出现消耗大量内存的情况,影响到其他网站,虽然人工重启一下IIS应用程序池可以解决,但是时间长了也烦不胜烦。现在索性迁移到Azure东亚数据中心的Ubuntu虚拟机上来。本文主要记录在迁移过程一些细节步骤。

  1. 首先从Azure的标准镜像库里选Ubuntu server,我选的是14.02
  2. 然后参考DigitalOcean的这个教程安装LAMP和WordPress
  3. 在Azure的管理门户上打开80端口
  4. 检查一下,这时候应该已经可以用类似http://blairubuntu.cloudapp.net/的地址访问WordPress了。
  5. 为了让网站更安全,到/var/www/html/wordpress目录下运行下面命令,设置正确的文件权限
    sudo chown www-data:www-data -R *          # Let apache be owner
    sudo find . -type d -exec chmod 755 {} ;  # Change directory permissions rwxr-xr-x
    sudo find . -type f -exec chmod 644 {} ;  # Change file permissions rw-r--r--
    sudo service apache2 restart
    
  6. 进入后台Setting->General里把Site Address URL换成http://blairubuntu.cloudapp.net
  7. 如果需要phpmyadmin,可以用下面命令快速安装
    apt-get -y install phpmyadmin

安装过程遇到的几个问题

  1. 在第一次登陆后台的时候,发现所有的升级(WP/主题/插件)页面都提示需要填写FTP信息,研究了一下,发现默认/etc/wordpress/config-default.php里的WP_CONTENT_DIR路径有误,修改成/var/www/html/wordpress/wp-content后问题解决。
  2. 首页可以显示,但是博客页面总是显示404,解决方法:按照这个教程启用Apache的各个模块

2015.5.15更新,最早是按照Ubuntu的官方教程安装的,后来发现这个方法对一个服务器跑多个wordpress站不是很友好,最后按照DigitalOcean的这个教程重新搭建了。

另外记录创建数据库脚本,先用mysql –u root –p打开mysql shell,然后运行

CREATE DATABASE mydb;<br>CREATE USER mydbuser<a href="mailto:mydbuser@localhost">@localhost</a>;<br>SET PASSWORD FOR <a href="mailto:mydbuser@localhost">mydbuser@localhost</a>= PASSWORD("mypassword");<br>GRANT ALL PRIVILEGES ON mydb.* TO <a href="mailto:mydbuser@localhost">mydbuser@localhost</a> IDENTIFIED BY 'mypassword';<br>FLUSH PRIVILEGES;<br>exit