小编xac*_*nay的帖子

postgresql pgBench 工具运行用户定义的 SQL 脚本

请帮我澄清一下,pgbench工具是否可以并行执行我自己的sql场景?谷歌搜索和本地搜索没有带来积极的结果。

我运行的脚本没有错误地执行。但执行后我没有看到任何迹象表明我的脚本确实被执行了。pgbench 是否使用我的 sql 脚本提交事务?

这是我得到的输出:

C:\Program Files\PostgreSQL\9.2\bin>pgbench.exe -n -h dbserverhost -U postgres -
T 10 -c 64 -j 8 bench_dbname -f c:\Dev\bench_script.sql

transaction type: TPC-B (sort of)
scaling factor: 1
query mode: simple
number of clients: 64
number of threads: 8
duration: 10 s
number of transactions actually processed: 1020
tps = 95.846561 (including connections establishing)
tps = 103.387127 (excluding connections establishing)

C:\Program Files\PostgreSQL\9.2\bin>
Run Code Online (Sandbox Code Playgroud)

SQL脚本bench_script.sql是:

--comment here
begin;
  insert into schm.log values ( 'pgbench test', current_timestamp );
end;
Run Code Online (Sandbox Code Playgroud)

解决方案 …

sql postgresql benchmarking multithreading

8
推荐指数
1
解决办法
1万
查看次数

BULK收集到一个物体表

在尝试使用BULK COLLECT语句时,我收到了错误ORA-00947: not enough values.

示例脚本:

CREATE OR REPLACE 
TYPE company_t AS OBJECT ( 
   Company          VARCHAR2(30),
   ClientCnt            INTEGER   );
/

CREATE OR REPLACE 
TYPE company_set AS TABLE OF company_t;    
/

CREATE OR REPLACE 
FUNCTION piped_set (
  v_DateBegin IN DATE,
  v_DateEnd IN DATE
)
return NUMBER /*company_set pipelined*/ as
  v_buf company_t := company_t( NULL, NULL);
  atReport company_set;
  sql_stmt VARCHAR2(500) := '';
begin

select * BULK COLLECT INTO atReport
from (
   SELECT 'Descr1', 1 from dual
   UNION
   SELECT …
Run Code Online (Sandbox Code Playgroud)

oracle plsql bulkinsert oracle11g usertype

5
推荐指数
1
解决办法
2万
查看次数

StoredProc操作临时表在执行时抛出"无效列名"

我有一些sp创建一个#TempData包含各种字段的临时表.在这些sp中,我称之为操作的一些处理sp #TempData.临时数据处理取决于sp输入参数.SP代码是:

CREATE PROCEDURE [dbo].[tempdata_proc]
  @ID int,
  @NeedAvg tinyint = 0
AS
BEGIN
  SET NOCOUNT ON;                
  if @NeedAvg = 1
    Update #TempData set AvgValue = 1
  Update #TempData set Value = -1;
END
Run Code Online (Sandbox Code Playgroud)

然后,使用以下代码在外部sp中调用此sp:

USE [BN]
--GO
--DBCC FREEPROCCACHE;
GO

 Create table #TempData
  (
   tele_time datetime
   , Value float
   --, AvgValue float
  )
  Create clustered index IXTemp on #TempData(tele_time);

  insert into #TempData(tele_time, Value ) values( GETDATE(), 50 ); --sample data

declare 
  @ID int,
  @UpdAvg int;
select
  @ID …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server-2005 tempdata

1
推荐指数
1
解决办法
3081
查看次数