小编a_h*_*ame的帖子

没有参数的 EXEC() 和 sp_executesql 之间的区别?

我刚刚了解了新的 sp_executesql 存储过程。我喜欢有一种方法可以从 SQL Server 中执行参数化代码。

但是,我想知道在没有任何参数时使用 sp_executesql 存储过程与直接调用 EXEC 之间有什么区别。另外,是否有性能影响?

exec('select * from line_segment')
exec sp_executesql N'select * from line_segment'
Run Code Online (Sandbox Code Playgroud)

另外,2005 年和 2008 年之间是否存在差异,或者它们的处理方式是否相同?

sql-server-2005 sql-server-2008 t-sql

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

重新连接镜像服务器 SQL Server 2008 R2

故障转移服务器具有状态(镜像、断开连接、恢复中),主体服务器具有状态(主体、断开连接)。

重新连接这些服务器的过程是什么?

sql-server mirroring sql-server-2008-r2

10
推荐指数
2
解决办法
3万
查看次数

Postgres 继承分区表的索引

我有一个包含大约 6000 万行的表,我按状态将其划分为 53 个子表。这些表像这样“继承”大表:

CREATE TABLE b2b_ak (LIKE b2b including indexes, CHECK ( state = 'AK') ) INHERITS (b2b8) TABLESPACE B2B;

我的问题是:如果在复制语句完成之前我不在 b2b8 上构建索引,子表是否继承索引?换句话说,我想这样做:

Create b2b8
Create b2b8_ak inherits b2b8
COPY b2b8 FROM bigcsvfile.csv
CREATE INDEX CONCURRENTLY
Run Code Online (Sandbox Code Playgroud)

并让整个事情结果在子表上创建了所有索引。

postgresql index copy

10
推荐指数
2
解决办法
8651
查看次数

分块删除活动表上的多行 - 无需锁定太长时间(PostgreSQL 9.3)

我是 postgres 的新手,

我在实时服务器上有一个 2000 万行的表 - 我需要删除大部分行但不是全部。我想这样做而不影响访问此表的其他读/写进程(非常频繁)。

我有一种方法可以一次删除大约 100-400K 行块。在每次删除之间,我想让查询休眠 - 以便其他操作可以有机会访问此表。

我有代码,但我相信这个版本,它在查询运行的整个时间(所有睡眠)都锁定表。我怎样才能在进程休眠时真正释放表?谢谢!!

到目前为止我的代码:

CREATE SEQUENCE tmp_sq increment by 1 minvalue 1 maxvalue 53 start with 1;

DO $$

DECLARE 
w_counter integer;

BEGIN
w_counter := (SELECT nextval('tmp_sq')); 

  while w_counter < 53 loop
    raise notice 'Value: %', w_counter ;

    w_counter := (SELECT nextval('tmp_sq')); 

-- this way of breaking up the delete into chunks works for my table because of dates.
    delete from table_a where date_part('week',my_date) = w_counter;

    raise notice ' …
Run Code Online (Sandbox Code Playgroud)

postgresql delete plpgsql

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

哪种方式设计购物车表更好 - SQL Server

我想在网上商店中创建一个购物车。我有两种设计购物车的方法,但我不知道哪个更好。

解决方案1:创建一个如下表:

在此处输入图片说明

以这种方式为每个产品为用户添加新行。

注意UserId 和 ProductId 是唯一的

解决方案2:

使用两个表:购物车,cartItem

在此处输入图片说明

这样就为每个用户只在ShoopingcartTable 中创建了一条记录。

你有什么意见?

database-design sql-server

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

无法更改 Oracle 的服务名称

我正在尝试更改 Windows 2003 服务器上 Oracle 11.2.0.3 安装的服务名称。

在安装过程中,服务名称是用默认域定义的,但我们想摆脱它。

什么到目前为止,我已经做了(什么之前已经工作)的服务名称更改mydb.foo.barmydb唯一的:

alter system set service_names = 'mydb' scope = both;
alter database rename global_name to mydb;
Run Code Online (Sandbox Code Playgroud)

这似乎有效:

SQL> 显示参数名称

名称类型值
------------------------------------- ----------- --- ---------------------------
db_name 字符串 mydb
db_unique_name 字符串 mydb
global_names 布尔值 FALSE
instance_name 字符串 mydb
service_names 字符串 mydb
查询>

(我从上面的输出中删除了一些不相关的属性)

然后使用alter system register重新注册侦听器。

这显示没有效果,所以我重新启动了数据库和监听器,仍然没有运气。

目前的情况如下:

select name from v$active_services 返回:

SERVICE_ID | 姓名 | 网络名称       
-----------+-----------------+-----
1 | SYS$背景 |                    
2 | SYS$USERS |                    
3 …

oracle-11g-r2

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

为什么 't' 和 'f' 而不是 TRUE 和 FALSE

为什么 PostgreSQL 返回 't' 和 'f' 而不是 TRUE 和 FALSE?

文档本身的建议我们将布尔值或进行比较时使用的真与假,但选择从数据库中的值时,返回不同的价值观。

CREATE TABLE test1 (a boolean, b text);
INSERT INTO test1 VALUES (TRUE, 'sic est');
INSERT INTO test1 VALUES (FALSE, 'non est');
SELECT * FROM test1;
 a |    b
---+---------
 t | sic est
 f | non est
Run Code Online (Sandbox Code Playgroud)

这种行为有原因吗?PostgreSQL 社区有没有尝试过改变它?

postgresql datatypes psql

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

DBeaver 从文件启动脚本

我试图找到一个很好的替代 SQL Developer 来在 Oracle 实例上执行查询和脚本。

我发现DBeaver是一个有趣的工具,它有很多很棒的功能,它似乎缺少一个基本要素:以类似批处理的方式从客户端机器的文件系统启动脚本的可能性。

例如,在 SQL Developer 中,我简单地放置了一个名为delta_script.sql的文件,其中包含:

@script1.sql
@script2.sql
@script3.sql
Run Code Online (Sandbox Code Playgroud)

我将它作为脚本执行,软件以正确的顺序执行所有文件(前提是它们与 delta_script.sql 文件位于同一目录中)。

在 DBeaver 上,这不会发生,而是得到[900] ORA-00900:无效的 SQL 语句。.

我怎样才能管理它按预期工作?

我在 delta_script.sql 文件中尝试了以下内容,但没有成功:

  • @@scriptN.sql
  • @/tmp/folder/scriptN.sql
  • @"/tmp/folder/scriptN.sql"
  • @"scriptN.sql"

他们都给出了同样的错误,所以我认为“@”有问题。我已经在 SQLPlus 中尝试使用我在 SQL Developer 上使用的 synthax 没有错误。

oracle dbeaver

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

如何像在 Sql Server/Oracle 中那样在 PgAdmin 4 中执行多条语句?

如何像在 Sql Server/Oracle 中那样在 PgAdmin 4 中执行多条语句(按 F5)?

select * from employees;

select * from department;
Run Code Online (Sandbox Code Playgroud)

正如我与 PgAdmin 一起工作的那样,它允许我们每次只执行一个选定的语句或最后一个语句,有什么方法或任何设置可以一起执行多个 dml 语句?

pgadmin

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

SSRS 很快就会灭绝,PowerBI 会成为新模式吗?

我读到 SQL Server 2017 现在将包含 PowerBI Server。他们还将 SSRS 移动到不同的安装程序,因此它不会打包在原始 SQL Server 安装中。这是否意味着微软最终会尝试弃用 SSRS?我们的团队是否应该尝试在 PowerBI 中构建新报告并转换以前的 SSRS 报告?

sql-server ssrs business-intelligence powerbi sql-server-2017

9
推荐指数
2
解决办法
4511
查看次数