小编Jac*_*las的帖子

如何在大插入期间最小化日志记录?

在夜间计划任务期间,我使用select into然后添加聚集索引从头开始创建一个大表。我想在整个过程中最大限度地减少日志记录量,因为我用于日志备份传送的带宽有限。

如果有帮助,我很乐意考虑另一种方法。

sql-server-2008 logs

6
推荐指数
2
解决办法
3337
查看次数

ALTER SYSTEM DISCONNECT SESSION 不起作用

甲骨文 11g。开发人员会在一夜之间让会话保持连接,有时某些 cron 作业会因此而失败。我试图杀死所有用户会话,但我不能。

我登录为:

sqlplus system/[password] as sysdba
Run Code Online (Sandbox Code Playgroud)

我这样做是为了列出会话:

select sid,serial#,program from gv$session where type='USER' and machine!='this-server';
Run Code Online (Sandbox Code Playgroud)

列表如下所示:

       SID    SERIAL# PROGRAM
Run Code Online (Sandbox Code Playgroud)
10   7883 toad.exe
11  42365 toad.exe
77  22493 toad.exe
Run Code Online (Sandbox Code Playgroud)

然后我这样做:

alter system disconnect session '10,7883' immediate;
Run Code Online (Sandbox Code Playgroud)

并且是说:

System altered.
Run Code Online (Sandbox Code Playgroud)

但什么也没有发生。会话仍然存在。我究竟做错了什么?

PS:我对 Oracle 很陌生,我以前只使用过 MySQL。

oracle oracle-11g

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

导入数据的解决方法

我正在尝试将数据导入 SQL Server。我可以通过导入和导出数据向导导入。我无法使用BULK IMPORTOPENROWSET因为文件不在服务器机器上从我的机器导入。IED 向导如何将数据插入其目标数据库?是一行一行的吗?

从我的机器导入数据还有其他可能的解决方案吗?

sql-server-2008 import

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

有没有比执行虚拟更新更好的方法来“触摸”一行?

我使用xmin系统列来实现一种形式的乐观锁定,有时需要“触摸”行来碰撞xmin而不实际更新行。我目前只是做一个“虚拟”更新:

create table t(id integer);
insert into t(id) values(1);
insert into t(id) values(2);

select xmin::text from t where id=1
/*    
|  XMIN |
---------
| 87159 |
*/

update t set id=id where id=1

select xmin::text from t where id=1
/*
|  XMIN |
---------
| 87196 |
*/
Run Code Online (Sandbox Code Playgroud)

(SQL 小提琴)

我很好奇是否有另一种方法可以在xid不进行更新的情况下进行碰撞,类似于 unixtouch命令?

postgresql

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

user_users 中的用户密码到期日期为空?

是否可以在不询问 DBA 的情况下找到我的密码到期日期?

我的用户没有查看DBA_USERS表的权限。另外,我试过select * from USER_USERS桌子,但它expiry_date是空的。

oracle metadata

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

为什么在示范条款中的规则的 RHS 中对某些聚合进行了不同的处理?

由于我对模型子句的理解有限,我希望以下三个查询返回相同的结果,因为数据中没有空值,并且函数是等效的:

select *
from (select level k, 100 v from dual connect by level<=2)
model return updated rows
dimension by (k)
measures (v, 0 shr)
rules ( shr[any] = v[cv()]/sum(v)[any] );  --plain sum
/*
         K          V        SHR
---------- ---------- ----------
         1        100        0.5 
         2        100        0.5 
*/
select *
from (select level k, 100 v from dual connect by level<=2)
model return updated rows
dimension by (k)
measures (v, 0 shr)
rules ( shr[any] = v[cv()]/nullif(sum(v)[any],0) ); --with nullif
/* …
Run Code Online (Sandbox Code Playgroud)

oracle oracle-11g-r2

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

在 DELETE 语句中使用 FROM 关键字

BOL 和许多其他来源指出:

FROM
是一个可选关键字,可以在 DELETE 关键字和目标 table_or_view_name 或 rowset_function_limited 之间使用。

我习惯写DELETE没有FROM. 我进行了一些搜索,但找不到FROM强制性的地方。任何人都可以指出应该强制执行的情况吗?还是总是可选的?

sql-server delete t-sql

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

是否记录了此临时表行为?

查询语言 (SQL) 和 PL/pgSQL 函数对临时表的处理方式不同:

begin;
create table foo(id) as values (1);
select * from foo;
/*
 id
----
  1
*/
savepoint s;
create function f() returns setof integer language sql as $$
  create temporary table foo(id) on commit drop as values (2);
  select id from foo;
$$;
select * from f();
/*
 f
---
 1
*/
rollback to s;
create function f() returns setof integer language plpgsql as $$
begin
  create temporary table foo(id) on commit drop as values …
Run Code Online (Sandbox Code Playgroud)

postgresql functions postgresql-9.3 temporary-tables

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

如何将“日期”(不是“时间戳”)截断为月份?

Postgresdate_trunctimestampor进行操作interval,并且:

日期和时间类型的值分别自动转换为时间戳或间隔。

换句话说,我们可以使用date_trunc强制转换的date值:

select date_trunc('month',current_date)::date;
??????????????
? date_trunc ?
??????????????
? 2014-12-01 ?
??????????????
Run Code Online (Sandbox Code Playgroud)

但是这个时区是否安全——如果当前日期是夏令时而月份的开始不是,反之亦然会得到正确的日期吗?

postgresql timezone postgresql-9.3

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

获取 ApplicationName (sqlserver.client_app_name) 以显示在 xevent 中

我正在尝试使用扩展事件检查一些 T-SQL,就像我以前使用 SQL 探查器一样。我有以下事件会话:

IF EXISTS (SELECT name FROM sys.dm_xe_sessions WHERE Name = 'PySoup tracing')
BEGIN
    DROP EVENT SESSION [PySoup tracing] ON SERVER
END

CREATE EVENT SESSION [PySoup tracing] ON SERVER 
ADD EVENT sqlserver.rpc_completed (ACTION(sqlserver.client_app_name, sqlserver.sql_text )),
ADD EVENT sqlserver.sp_statement_completed (ACTION(sqlserver.client_app_name, sqlserver.sql_text )),
ADD EVENT sqlserver.sql_batch_completed (ACTION(sqlserver.client_app_name, sqlserver.sql_text )),
ADD EVENT sqlserver.sql_statement_completed (ACTION(sqlserver.client_app_name, sqlserver.sql_text ))
ADD TARGET package0.event_file(SET filename=N'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Log\PySoup tracing.xel')--,
--ADD TARGET package0.ring_buffer(SET max_events_limit=(1000000))
GO

ALTER EVENT SESSION [PySoup tracing] ON SERVER
    STATE = START;
Run Code Online (Sandbox Code Playgroud)

我认为 ACTION …

sql-server extended-events sql-server-2012

6
推荐指数
2
解决办法
1422
查看次数