Archive

Posts Tagged ‘SQL’

PostgreSQL查询表和index占用空间大小

November 12th, 2018 No comments

PostgreSQL查询表和index占用空间大小

PostgreSQL表和index占用空间大小信息存储在
information_schema.tables中
通过SQL可以查询到相应的统计数据

1
2
--查出单个表的大小
select pg_size_pretty(pg_relation_size('TABLENAME'));

查出表大小按大小含Index

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
-- 查出表大小按大小含Index
SELECT
"table_name",
pg_size_pretty(table_size) AS table_size,
pg_size_pretty(indexes_size) AS indexes_size,
pg_size_pretty(total_size) AS total_size
FROM (
SELECT
table_name,
SUBSTRING("table_name",1,10) as short_name,
pg_table_size(table_name) AS table_size,
pg_indexes_size(table_name) AS indexes_size,
pg_total_relation_size(table_name) AS total_size
FROM (
SELECT ('"' || table_schema || '"."' || table_name || '"') AS table_name
FROM information_schema.tables
) AS all_tables
where all_tables.table_name like '%TABLENAME%'
ORDER BY total_size DESC
) AS pretty_sizes

Read more…

PostgreSql查询正在执行的SQL和查询执行耗时的SQL

November 9th, 2018 No comments

运行在AWS RDS上的PostgreSql今天TransactionID耗尽,原因是有一个SQL执行占用CPU超过12小时

–查询正在执行的SQL

1
select * from pg_stat_activity where datname='schema名称';

–结束正在进行的R查询

1
select pg_cancel_backend(pid);

–结束正在执行CUD操作

1
select  pg_terminate_backend(pid)

Read more…

Categories: 系统管理, 语言编程 Tags: , ,

[Redis] 解决Redis运行时Cannot save in background问题

August 28th, 2015 No comments

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。

Redis运行时经常出现 Cannot save in background. 问题,通常因为两个原因
1.Redis的占用的内存过大,导致BGSAVE时系统无法分配足够的内存给BGSAVE进程而导致错误。
碰到这种情况时,你可以这样操作,限制Redis的最大内存大小到系统内存的一半以内。
设置redis的内存可以在redis.conf 中修改 maxmemory 属性

1
   maxmemory  # 系统实际安装内存的一半以内,实验环境的话建议不要超过1/3

Read more…

修复SQLServer2005/2008/2012数据库质疑/Suspect状态

March 6th, 2015 No comments

昨天夜间机房断电后SQLServer2008服务器重启,早上Sharepoint系统不能登录,使用SQLServer的管理工具检查后发现,SharePoint_Config数据库上多了一个黄色的三角符号,并提示数据库为质疑/Suspect状态.
立即使用以下SQL脚本进行强制恢复数据库

1
2
3
4
5
6
7
8
9
    use master
    declare @databasename varchar(255)
    set @databasename='SharePoint_Config'
    sp_configure 'allow updates',1
    reconfigure with override
    --强制修改数据库状态
    update master..sysdatabases set status = 16 where name = @databasename
    --尝试恢复数据库
    dbcc dbrecover(@databasename, IGNOREERRORS)

结果还是质疑/Suspect状态,估计是数据库日志文件有损坏. 好在只是SharePoint_Config数据库,对用户数据没有影响。直接使用了以下方法进行了恢复数据库。
Read more…

Categories: 系统管理 Tags: ,

[SQL]两条学校索迪杯软件大赛预赛试卷SQL语句考试试题

December 18th, 2008 4 comments

今天参加了学校的索迪杯预赛考试,结果看到试卷上的日文就懵了,考这玩意要考日文?就跟美国GRE考试要考《论语》一样,反正很变态!!不过还有两条比较经典的SQL题目值得跟大家分享,适合SQL的初学者学习,好像俺也就是算个初学者吧,好了,看题目。

第一题 用SQL判断今年或者某一年是否是闰年
说明:SQL?闰年?两者好像没多大关系吧,跟考试考日文一样,真佩服考官了,不过详细用过SQL server2000的朋友肯定知道NOW()这个函数,我一开始也是这么想的,可是now()包含太多的无用信息了,而且处理比较麻烦,于是又想到另一个函数GETDATE(),目前在MSSQL2000可用,其他的不太清楚,可以参阅用户手册,GETDATE()的返回信息是今天的日期。

Read more…

Categories: 语言编程 Tags: , ,