当前位置:  数据库>其它
本页文章导读:
    ▪使用Npgsql连接Postgres      1.装好Postgres 2.开启远程访问 配置postgresql.conf文件 listen_addresses = '*'  配置pg_hba.conf文件 host    all         all         .........
    ▪SQLServer RESOURCE_SEMAPHORE 等待状态      概述:          当一个SQLServer实例运行得很慢的时候,应该做一些检查,如检查等待状态。最好的方法是一开始就建立一个性能基线,以便做性能对比。当发现与.........
    ▪Mysql replication 配置      MySQL 设定写入 Master 后, 自动 Replication 到 Slave 去, 运作基本原理是: INSERT/UPDATE/DELETE 语法, 自动写入 Master 的 binlog file.由 GRANT REPLICATION 授权的账号, 自动将 SQL 语法 repl 到 Slave 的 DB 执行.因而完.........

[1]使用Npgsql连接Postgres
    来源:    发布时间: 2013-11-07

1.装好Postgres

2.开启远程访问

配置postgresql.conf文件

listen_addresses = '*' 

配置pg_hba.conf文件

host    all         all         0.0.0.0/0          trust

3.下载npgsql 引用2个dll

4.code

 

string strConn = ConfigurationManager.ConnectionStrings["npgsql"].ConnectionString;
var conn = new NpgsqlConnection(strConn);

string sql = "select * from test";
var dt = new DataTable();

var cmd = new NpgsqlDataAdapter(sql, conn);

cmd.Fill(dt);

foreach (DataRow row in dt.Rows)
{
Console.WriteLine(row["xxxx"].ToString());
}
conn.Close();
Console.Read();.csharpcode, .csharpcode pre{font-size: small;color: black;font-family: consolas, "Courier New", courier, monospace;background-color: #ffffff;/*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt {background-color: #f4f4f4;width: 100%;margin: 0em;}.csharpcode .lnum { color: #606060; }

本文链接


    
[2]SQLServer RESOURCE_SEMAPHORE 等待状态
    来源: 互联网  发布时间: 2013-11-07
概述:

         当一个SQLServer实例运行得很慢的时候,应该做一些检查,如检查等待状态。最好的方法是一开始就建立一个性能基线,以便做性能对比。当发现与性能基线对比后,存在内存压力的话,就要找出是什么原因导致的。可以检查事务的等待状态,其中Resource_semaphore等待可能出现最多。下面是如何去处理这个问题: 

         当检查事务的所有等待类型后,可能会发现Resource_semaphore这个等待类型出现非常多,这会增加一些页面的IO等待。因为这些事务没有足够的内存来处理它们的操作,所以到这了页面的IO等待。

 

Resource_semaphore等待:

         首先我们来弄清楚一下什么是Resource_semaphore等待。当SQLServer收到一个用户请求(或者查询时)。首先会创建一个编译后的计划,然后在这个基础上创建一个执行计划。当SQLServer创建一个编译后的计划时,它会计算两个内存授予参数,成为:请求内存(required memory)和额外内存(additional memory)

        请求内存是运行排序和hash连接的所需最少内存,之所谓成为“请求”,是因为查询不需要在一开始就申请这部分的内存。而额外内存是存放临时数据到内存中所需的那部分内存。如果没有足够的内存,查询所需的数据将会存到硬盘当中。

         首先,服务器会计算运行特定查询所需要的内存。这部分通常等于请求内存和额外内存的总和。但当实例使用并行执行时,所需的内存为(请求内存*并行度)加上额外内存的总和。服务器会检查是否有足够的内存来运行每个查询,然后会降低额外内存的量,知道所有总内存需求量刚好达到内存的限制量。这部分修改后的内存成为需求内存(requested memory)。在SQLServer内不能,有一个叫Resource Semaphore的设置,用于授予需求内存用于查询。当查询没有得到足够的内存,就会把等待状态改为:Resource_Semaphore。可以从sysprocesses系统表或者sys.dm_exec_request DMV中查询。

        当Resource_semaphore接受一个新的请求时,首先检查是否有查询还在等待中,如果发现有,那么会把这个新请求放到先进先出的队列中,Resource Semaphore会尝试对未等待的查询授予内存,这部分内存可能是之前的查询执行完毕后返回的内存。如果发现有足够的内存,那么就会把内存赋予给处于Resource Semaphore等待状态的查询,让其开始运行。如果不够,那么会把查询放入等待队列并标记为Resource_Semaphore等待。因此,看这个等待状态可以发现内存存在压力。


识别Resource_Semaphore等待: 步骤1:

        执行以下语句,并筛选Resource_Semaphore等待的数据:

SELECT  *
FROM    sys.SYSPROCESSES
WHERE   lastwaittype = 'RESOURCE_SEMAPHORE'
ORDER BY lastwaittype

由于这种情况不好模拟出来,所以没有截图。


步骤2:

        从步骤1中得到的结果,可能会看到很多的事务处于ResourceSemaphore 等待状态,现在可以运行下面语句来查看已分配到内存的查询的目前状态,和未被分配内存的查询的数量。这个DMV会返回两行,一行是resource_semaphore_id为0的大查询,另外一些是为1的小查询,这里的小是内存小于5M。在这里可以获得总授予内存和实例上总可用内存。可以查看grantee_count和waiter_count,grantee_count是已经分配了内存的总查询数量,而waiter_count是在队列中等待授予内存的总查询数量:


SELECT  *
FROM    sys.dm_exec_query_resource_semaphores

步骤3:

         然后使用DMV:sys.dm_exec_query_memory_grants来获得在等待队列中的查询所需要内存的详细信息。这些查询的grant_time和granted_memory_kb可能为null。也可以从这个DMV中得到plan_handle和sql_handle:

SELECT  *
FROM    sys.dm_exec_query_memory_grants

我们要关注的是下面3列:



步骤4:

       现在将要找到集中消耗内存的查询,可以查看所有等待查询中的需求内存。当看到这部分内存太大的时候,然后找到这些查询的plan_handle,并查看它们的执行计划:


SELECT TOP 10
        *
FROM    sys.dm_exec_query_memory_grants

步骤5:        把步骤4中查询的plan_handle的数据复制,然后执行:


SELECT * FROM sys.dm_exec_sql_text(sql_handle)

注意替换括号中的sql_handle。然后查看其执行计划。

 

总结:          通过上面的步骤找到耗费内存的查询后,应该调整语句,使其占用更少的资源。以便解决内存压力。

作者:DBA_Huangzj 发表于2013-1-6 23:12:50 原文链接
阅读:87 评论:0 查看评论

    
[3]Mysql replication 配置
    来源: 互联网  发布时间: 2013-11-07

MySQL 设定写入 Master 后, 自动 Replication 到 Slave 去, 运作基本原理是:

  • INSERT/UPDATE/DELETE 语法, 自动写入 Master 的 binlog file.
  • 由 GRANT REPLICATION 授权的账号, 自动将 SQL 语法 repl 到 Slave 的 DB 执行.
  • 因而完成 Replication 的动作.
  • ========================================================================

    操作系统:Linux

    Master端IP:192.168.2.122

    Slave端IP:192.168.2.123

    注意:在做配置的过程中,最好不要向 Master 数据库做写入操作。

    1        主机master设置 1.1       测试用数据库

    1.       建立名为test1的数据库

    create database test1;

    2.       建立表名为test1的表

    CREATE TABLE `test1` ( `id` bigint(20) unsignedNOT NULL AUTO_INCREMENT,   `name`  varchar(100) ,   PRIMARY KEY(`id`)  );

    3.       在表test1中插入3条测试数据

    INSERT INTO `test1` VALUES (1,'name1');

    INSERT INTO `test1` VALUES (2,'name2');

    INSERT INTO `test1` VALUES (3,'name3');

    1.2       设置Mysql Replication

    1.       增加一用于数据库同步的用户root

    mysql>GRANT REPLICATIONSLAVE,REPLICATION CLIENT,RELOAD,SUPER ON *.* TO'root'@'192.168.2.123' IDENTIFIED BY 'password';

    (授与从192.168.2.123主机上登录用户root数据复制权限)

    2.       使权限生效,这步可不做,因为过会要重启mysql

    mysql>flush privileges;

    3.       退出mysql命令行界面

    mysql> exit

    4.       停止mysql服务

    service mysqld stop

    5.       更改Mysql配置文件/etc/my.cnf

    1)       打开mysql配置文件

    vi /etc/my.cnf

    2)       在配置文件中添加以下内容

       #bind-address           = 127.0.0.1


        
    最新技术文章:
    ▪gc buffer busy/gcs log flush sync与log file sync    ▪让你的PL/SQL更好用    ▪ADO.NET中的非脱机数据库查询
    ▪参数job_queue_processes与Oracle jobs    ▪11gR2游标共享新特性带来的一些问题以及_cursor...    ▪_library_cache_advice和latch:shared pool、latch:shared poo...
    ▪SQL: Date Utility    ▪DB2 分区表增加分区    ▪DB2第一步 — 创建表
    ▪oracle 数据库    ▪插入10万条记录测试    ▪rebuild index VS. rebuild index online
    ▪如何处理undo tablespace 表空间太大的问题    ▪ado执行存储过程中包含结果集获取输出参数为...    ▪oracle函数的demo
    ▪Entity Framework 学习建议及自学资源    ▪存储过程的编写    ▪Linux/Unix shell 自动发送AWR report(二)
    ▪第二章 Oracle恢复内部原理(基础数据结构)    ▪Redis源码学习之【Tcp Socket封装】    ▪Java Jdbc减少与Oracle之间交互提升批量处理性能...
    ▪南大通用GBase8a Vs Oracle11g 单机测试亲测    ▪oracle 中行列转换    ▪rhel下安装oracle10g+asm---测试环境搭建
    ▪Redis系列-主从复制配置    ▪MySQL索引与查询优化    ▪INDEX受到NULL值的影响
    ▪测试人员的SQL语言 系列    ▪SQL数据库基本语句    ▪MySQL Replication常见错误整理[持续更新...]
    ▪eclipse下建立esper的demo    ▪把oracle rac 转化为单机数据库    ▪Redis系列-存储篇sorted set主要操作函数小结
    ▪基本的SQL*Plus报表和命令    ▪druid简单教程    ▪11g调度--scheduler使用
    ▪EF基础一    ▪db2存储过程中循环语句while do的continue有没有...    ▪oracle 创建DBLINK
    ▪DB2数据库备份还原    ▪Warning: prerequisite DBD::mysql 1 not found错误解决方...    ▪innotop性能监视mysql,innodb工具
    ▪数据迁移:DataGuard配置    ▪QX项目实战-19.跨库数据同步    ▪Mysql EXPLAIN
    ▪Oracle 11g AWR 系列七:Active Session History (ASH) 报...    ▪Oracle 11G新特性(共36个)    ▪父子节点问题
    ▪OEM简介及按钮乱码问题    ▪NoSql之MongoDB的常用类管理    ▪ORA-39700: database must be opened with UPGRADE option
    ▪node.js 访问redis数据库,pub/sub    ▪使用DBMS_REDEFINITION在线重定义分区表    ▪SQL Developer 使用问题与解决方法汇总
    ▪oralce 11g dataguard 概念    ▪ORA-30004 错误处理    ▪oracle分组函数rollup,cube
    ▪Sql Developer 使用问题与解决方法汇总    ▪Configure Oracle Dataguard Primary-ASM to Physical-ASM    ▪Oracle Data Guard 理论知识
    ▪Control File 恢复    ▪Oracle数据文件收缩    ▪Oracle 11g AWR 系列五:如何生成 AWR 报告?
    ▪Wireshark数据包分析实战(第2版)    ▪MySql用户权限控制    ▪db2和oracle查询序列区别
    ▪更新blob字段的存储过程    ▪MySQLReport分析报告三    ▪DB2中的序列
    ▪Oracle中DBMS_RANDOM.STRING 的用法    ▪SQL SERVER无法安装成功,sqlstp.log文件提示[未发...    ▪Data Guard 部署物理备库的 10 大注意事项
    ▪万能数据库查询分析器使用技巧之(九)    ▪SQL 自定义Split函数    ▪视图 v$sql,v$sqlarea,$sqltext,v$sqltext_with_newlines 的...
    ▪Data Guard Standby_archive_dest 和 Log_archive_dest_n 的...    ▪机房收费系统数据库设计(一)    ▪利用putty的SSH tunnel连接Oracle
    ▪DBCA建库偶遇ORA-27125    ▪使用PowerPivot建立简单的分析模型    ▪Linux/Unix shell 自动发送AWR report
    ▪写入到blob字段的存储过程    ▪关于JDBC中ResultSet接口的一点细节探究    ▪Data Guard 配置 Standby Redo Log
    ▪linux下redis的安装    ▪windows下redis的安装    ▪手动创建数据库步骤(简单翻译官方文档)
    ▪Ubuntu安装Mongodb    ▪SQL CLR应用    ▪redis的配置文件参数--详细说明
     


    站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3