postgres创建索引参考

http://www.cnblogs.com/stephen-liu74/archive/2012/05/09/2298182.html

CREATE TABLE test1 (
        id integer,
        content varchar
    );
    CREATE INDEX test1_id_index ON test1 (id);

创建存储过程

CREATE OR REPLACE FUNCTION update_sqs(lng "varchar", lat "varchar", gid "varchar")
RETURNS void
AS
$BODY$
DECLARE
r RECORD;
del bool;
num int4 := 0;
sql "varchar";
BEGIN
sql := 'UPDATE public.sqs_poi SET geocoding_lng = ' || lng || ', geocoding_lat = ' || lat || ' WHERE geoid=' || gid;
execute sql;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;

下面是调用的代码

AscMethod方法通过多线程调用

for (int ii = 0; ii < 10; ii++)
{
Thread threadTmp = new Thread(new ParameterizedThreadStart(AscMethod));
threadTmp.Start(ii);
}

public void AscMethod(object i)
{

double s1 = Convert.ToInt32(i)*500000;
double s2 = Convert.ToInt32(i)*500000 + 500000;
string strQuery = "SELECT pr, city, addr, geoid FROM public.sqs_poi WHERE geocoding_lng IS NULL AND geoid >= " + s1.ToString() + " AND geoid < " + s2.ToString() + ";";// LIMIT 500000 OFFSET 0
NpgsqlConnection conn = new NpgsqlConnection("Server=" + Config.host + ";Port=5432;UserId=" + Config.user + ";Password=" + Config.password + ";Database=" + Config.database + ";Preload Reader=true;" + "CommandTimeout=0;ConnectionLifeTime=0;");
// conn.Close();
conn.Open();
NpgsqlCommand SelectCmd = new NpgsqlCommand(strQuery, conn);
NpgsqlDataReader StrReader = SelectCmd.ExecuteReader();
//int line = 1;
while (StrReader.Read())
{
string Address = StrReader["pr"].ToString() + StrReader["city"].ToString() + StrReader["addr"].ToString();
string[] geoString = geocoing(Address);
if (geoString == null)
continue;
try
{
//string updatesql = "UPDATE public.sqs_poi SET geocoding_lng = " + geoString[0] + ", geocoding_lat = " + geoString[1] + "WHERE geoid=" + StrReader["geoid"];
//NpgsqlCommand cmdi = new NpgsqlCommand(updatesql, conn);
NpgsqlCommand cmd = new NpgsqlCommand();
cmd.Connection = conn;
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "update_sqs";
NpgsqlParameter p1 = new NpgsqlParameter("lng", DbType.String);
NpgsqlParameter p2 = new NpgsqlParameter("lat", DbType.String);
NpgsqlParameter p3 = new NpgsqlParameter("gid", DbType.String);
p1.Value = geoString[0];
p2.Value = geoString[1];
p3.Value = StrReader["geoid"].ToString();
cmd.Parameters.Add(p1);
cmd.Parameters.Add(p2);
cmd.Parameters.Add(p3);
cmd.ExecuteNonQuery();
}
catch (Exception ei)
{
if (conn.State != ConnectionState.Open)//判断数据库是否断开
{
conn.Open();
}
continue;
}
// line++;
}
conn.Close();
}

postgres索引创建、 存储过程的创建以及在c#中的调用的更多相关文章

  1. 存储过程的参数问题与C#中的调用

    1. 带参数的存储过程 set ANSI_NULLS ON set QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[sp_select_gua] @num ...

  2. mysql创建存储过程,定时任务,定时删除log

    -- 创建存储过程 清除30天前的日志create procedure deleteLog()BEGINdelete from contract_vlog where create_time<D ...

  3. mysql创建存储过程,批量建表分表00到99

    这里以sqlyong为软件示例: --创建存储过程DELIMITER $$ CREATE PROCEDURE `createTablesWithIndex`() BEGIN DECLARE `@i` ...

  4. SqlServer存储过程的创建与使用

    什么是存储过程? T-SQL中的存储过程,非常类似于net语言中的方法,它可以重复调用.当存储过程执行一次后,可以将语句缓存中,这样下次执行的时候直接使用缓存中的语句. 这样就可以提高存储过程的性能. ...

  5. mysql 创建存储过程报错

    在创建存储过程前把结束符定义为 delimiter // 然后再创建就不会报错

  6. 利用navicat创建存储过程、触发器和使用游标的简单实例

    利用navicat创建存储过程.触发器和使用游标的简单实例 标签: navicat存储过程触发器mysql游标 2013-08-03 21:34 15516人阅读 评论(1) 收藏 举报  分类: 数 ...

  7. MYSQL中存储过程的创建,调用及语法

    MySQL 存储过程是从 MySQL 5.0 开始增加的新功能.存储过程的优点有一箩筐.不过最主要的还是执行效率和SQL 代码封装.特别是 SQL 代码封装功能,如果没有存储过程,在外部程序访问数据库 ...

  8. Oracle存储过程动态创建临时表/存储过程执行权限问题--AUTHID CURRENT_USER

    关于Oracle存储过程执行权限问题的解决 http://blog.sina.com.cn/s/blog_6ceed3280101hvlo.html (2014-04-02 04:06:28) 转载▼ ...

  9. SQL Server 2008 存储过程,带事务的存储过程(创建存储过程,删除存储过程,修改存储过

    SQL Server 2008 存储过程,带事务的存储过程(创建存储过程,删除存储过程,修改存储过     存储过程 创建存储过程 use pubs --pubs为数据库 go create proc ...

随机推荐

  1. 疯狂JAVA16课之对象与内存控制

    java内存管理分为两个方面:内存分配和内存回收.这里的内存分配特指创建java对象时JVM为该对象在对内存中所分配的内存空间.内存回收指的是当该java对象失去引用,变成垃圾时,JVM的垃圾回收机制 ...

  2. 【翻译】如何在AJAX生成的内容中再次运行Prism.js

    一.前言 最近用一个十分轻量级的网页代码高亮Js库,应用到项目中发现了一个问题,对于静态的已经写好的代码,Prism的高亮插件是没有问题的,但是通过Ajax异步获取数据并修改DOM时发现,Prism高 ...

  3. Bootstrap模态框按钮

    1.触发模态框弹窗的代码 这里复制了一段Bootstrap模态框的代码 <h2>创建模态框(Modal)</h2> <!-- 按钮触发模态框 --> <but ...

  4. 101 LINQ Samples

    https://code.msdn.microsoft.com/101-LINQ-Samples-3fb9811b

  5. 回顾Spirng ioc 控制反转

    Spring的IoC(控制反转) .DI(依赖注入)这两个概念,对于初学Spring的人来说,总觉得IoC .DI这两个概念是模糊不清的,是很难理解的.结合网上对Spring Ioc的理解,回顾一下自 ...

  6. jexus5.8.2 linux x64通用版[未集成mono] 配置https

    一.找到mono安装位置 sudo find / -name mono 二.首先查看"/lib"或"/usr/lib"等系统库文件夹中是否有SSL库文件的名字, ...

  7. juery学习总结——例子

    1.select元素在选择是找到选择的值和option中的值 <!DOCTYPE html> <html> <head lang="en"> & ...

  8. vim保存文件时,生成.un~文件

    在用vim保存文件时,文件夹下生成.un~文件 怎么删除这些文件呢 在网上搜索的答案: http://stackoverflow.com/questions/15660669/what-is-a-un ...

  9. jQuery动画slideUp()不正常位移原因

    用jQuery写一个列表.当点击底部按钮时,列表中序号超过6的项目可以向下拉出或者向上收起. 用slideUp(),遇见一个问题.展开列表项会产生不正常位移,如下图所示.动画结束发生位移. 出现这个问 ...

  10. Redhat6.4下安装Oracle10g

    Oracle10g_Redhat6.4 安装指南 文档说明 本文借鉴<Redhat_Linux_6.4下Oracle_10g安装配置手册><Redhat 6.4 安装 Oracle1 ...