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. Android中利用AIDL机制调用远程服务

    服务端: //CalculateInterface.aidl package com.itheima.aidl.calculate; interface CalculateInterface { do ...

  2. 个人CKeditor的config.js配置

    /** * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. * For lic ...

  3. canvas流星月亮星星银河

    这是页面的特效,首先月亮直接出现,然后星星和银河渐渐的出现(一闪一闪),最后流星划过,留下完美的句点. 所有的动画都是通过帧来实现的. 星星的代码分为2部分,首先是随机生成星星,然后是绘制星星,最后是 ...

  4. linux文件目录结构

    1./ 文件系统的入口,最高一级目录 2./bin 存放基础系统所需的命令 3./boot 包含Linux内核及系统引导程序所需要的文件 4./dev 设备文件存储目录(声卡.磁盘.分区..) 5./ ...

  5. spring-mvc注解(mvc:annotation-driver,JSON,配置详解)

    一.DefaultAnnotationHandlerMapping 和 AnnotationMethodHandlerAdapter 的使用已经过时! spring 3.1 开始我们应该用 Reque ...

  6. WKWebView与JavaScript交互基础

    login.html 代码 <!DOCTYPE html> <html> <head> <title>使用JavaScript</title> ...

  7. DOM

    DOM:Document Object Model 文档对象模型文档:html页面文档对象:页面中的元素文档对象模型:定义为了能够让程序(js)去操作页面中的元素DOM会把文档看作是一棵树docume ...

  8. form表单的属性标签和练习

    form表单的标签 做一个如下图的form表单: 我们的代码如下: <body leftmargin="400px" topmargin="200px"& ...

  9. Fedora中显示windows下的文件

    目录 一些预备知识: 在中国windows的编码是本地编码 , 即GBK,GB2312,GB18030等 GBK  也就是windows-986 Windows现在只支持Unicode (UTF-16 ...

  10. eclipse SVN Android项目出错,程序老闪退

    百度得知是.so文件被SVN客户端默认为是链接后的文件,认为是不提交的.因此需要将.so文件手动添加到版本控制.