标签: scripting

通过创建聚集索引并立即删除它来对 HEAP 进行碎片整理

我正在编写一个脚本,它打算通过创建一个带有聚集索引的虚拟列然后立即删除它来对基于 HEAP 的表进行碎片整理。(这是别人的应用程序,我不想进行任何永久性更改 - 不过他们做得很好。)

ALTER TABLE my_heap ADD dummy BIGINT IDENTITY;
GO
CREATE CLUSTERED INDEX ix_dummy ON my_heap (dummy);
GO
-- need to wait here until index completes
DROP INDEX ix_dummy ON my_heap;
ALTER TABLE my_heap DROP COLUMN dummy;
GO
Run Code Online (Sandbox Code Playgroud)

当我运行脚本的各个步骤时,它工作正常。当我一次运行它时,似乎什么也没有发生(碎片级别不会下降)。我相信这是因为 DROP 发生在 CREATE CLUSTERED 完成之前 - 所以 CREATE CLUSTERED 没有时间做它的事情。

如何让 DROP 等待 CREATE CLUSTERED 完成?我正在为大约 30 张桌子这样做,所以我不想为每张桌子设置一个简单的等待延迟 15 分钟。

PS 使用 SQL Server 2005

index sql-server-2005 clustered-index scripting t-sql

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

从 mongo 客户端内执行 shell (bash) 命令

如何从 MongoDB 客户端内执行 shell (bash) 命令?

使用 MySQL 客户端:

system (!) 执行系统 ​​shell 命令。

MongoDB 有类似的东西吗?

mongodb scripting mongodb-3.0

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

回滚生成脚本

在应用程序的开发过程中,用户通常想要添加新模块、业务规则等。所以我经常使用 SQL Server 2008 选项从开发数据库创建脚本以生成新表,然后我将在发布之前在生产服务器上执行应用程序的新版本。

所以我想知道有没有办法将整个生成脚本文件放在事务中,如果在将所有内容返回到以前的状态时出现错误,没有添加新表,插入数据等时回滚更改。

如果有原因这不是推荐的方法,请解释。

sql-server-2008 scripting transaction rollback

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

如何以可管道化的格式使用 psql 列出所有数据库和表?

这个问题涉及获取列表。所以我明白了:

$ psql --list
                                    List of databases
      Name      |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges
----------------+----------+----------+-------------+-------------+-----------------------
 testdb1        | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
 odoo           | openerp  | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
 odoo-demo      | openerp  | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
 odoo8          | openerp  | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
Run Code Online (Sandbox Code Playgroud)

我可以psql --list|grep UTF8|awk '{ print $1 }'用来获取仅包含数据库的列表。可psql也直接给我一个干净的有用列表?

postgresql scripting

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

跟踪标志正在运行,但在发生死锁时没有消息

跟踪标志用于临时设置特定服务器特征或关闭特定行为

有关跟踪标志的更多信息在这里

DBCC TRACESTATUS
Run Code Online (Sandbox Code Playgroud)

以上是显示当前在我的系统上运行的所有跟踪标志的命令。

在此处输入图片说明

我有两个问题:

1) 除了DBCC TRACESTATUS?之外,还有其他方法可以找到当前正在运行的跟踪标志列表吗?

2) 可以在上图中看到跟踪标志 1222 处于活动状态,但发生死锁时我没有收到任何电子邮件。还需要做什么?

sql-server deadlock dbcc scripting automation

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

备份所有数据库的脚本

我正在 SQL 2008 R2 Express 上自动备份 SQL Server 数据库。这些备份由 Windows 任务计划程序每天启动,它执行一个批处理文件,然后执行一个 SQL 脚本。我无法使用 SQL 代理,因为这是快速版本。

目前,我正在编写一个脚本,一个一个备份每个数据库。然而,这是相当高的维护 - 每次添加、删除或重命名数据库时,我都必须修改此脚本以反映这些更改。相反,我想编写一个 SQL 脚本来一次备份所有数据库,而不需要一个一个地明确备份每个数据库。

这是当前用于备份单个数据库的脚本:

Print 'Backing up MyDatabase...'
BACKUP DATABASE MyDatabase
TO DISK = 'F:\Backups\SQL Databases\MyDatabase.bak'
   WITH FORMAT,
      NAME = 'Full Backup of MyDatabase';
GO
Run Code Online (Sandbox Code Playgroud)

如何枚举所有数据库的列表并执行循环以对所有数据库执行此备份?

只是备份过程的一些附加说明:

  • Windows 中的计划任务每​​天晚上 9:00 执行批处理文件
  • 批处理文件调用执行 SQL 脚本的 OSQL
  • OSQL 输出保存结果的文本文件
  • 大约有30个数据库需要备份
  • 一些数据库超过 2GB(所以需要一些时间)
  • 第三方备份服务获取生成的备份文件,并在每晚午夜将其推送到异地

sql-server backup scripting automation

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

在函数中使用 psql --set 变量

我想创建一个脚本,该脚本将创建一些自定义命名架构并在其中创建一些表和函数。像这样:

文件example.sh

#!/bin/bash

# this is the only place I want to set the schema name
SCH="ex"

export SCH

export PGPASSWORD="*******"

PSQL="psql \
  -X \
  -U postgres \
  -h localhost \
  --single-transaction \
  --echo-all \
  --set SCH=$SCH \
  --set ON_ERROR_STOP=on "

eval $PSQL "-f ./example.sql"
Run Code Online (Sandbox Code Playgroud)

文件example.sql

DROP SCHEMA IF EXISTS :SCH CASCADE;
CREATE SCHEMA :SCH;

CREATE TABLE :SCH.my_table
(
  id SERIAL PRIMARY KEY,
  my_col text
);

INSERT INTO :SCH.my_table (my_col) VALUES ('abc'), ('def');

CREATE OR REPLACE …
Run Code Online (Sandbox Code Playgroud)

postgresql psql scripting postgresql-9.5

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

使用 sp_Blitz 收集中央服务器/数据库中所有服务器的信息

我正在使用sp_Blitz,并希望使用它来执行对我所有 SQL Server 的检查并将结果写入单个表。

我是否需要在中央实例上创建链接服务器以连接到其他实例,或者是否有其他方法可以将服务器名称输入到sp_Blitz存储过程中?

sql-server scripting sp-blitz

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

使用 T-SQL 查询系统规格(cpu、内存、数据盘、可用空间)

是否可以使用 T-SQL 在系统规范下进行查询?

  1. cpu(显示处理器/内核数/频率)
  2. 内存(显示机器上的 RAM 总量;显示分配的 RAM;显示实际使用的 RAM)
  3. 数据磁盘(显示磁盘总数、容量、可用空间)
  4. 显示 Windows 版本和版本

sql-server scripting

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

powershell 写入输出格式

我发现写入输出行(打印出变量)的格式似乎不一致。我找不到任何有关此的信息,这让我猜测我误解了我所看到的内容。

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- =-=-=-=

陈述:

对于大多数简单的变量,以下内容将起作用:

Write-Output " This $testValue will print just fine."
Run Code Online (Sandbox Code Playgroud)

但是,如果变量是对象的一部分,我需要将 $() 添加到 Write-Output 行:

Write-Output $("Removing old software from directory: " + $site.INSTALLDIR)
Run Code Online (Sandbox Code Playgroud)

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- =-=-=-=

问:上述说法正确吗?

powershell scripting

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