为了使用 ASM 将可传输表空间导入 Oracle 11 数据库,我们使用cp
该asmcmd
工具的命令。
我们如何一次复制多个文件?
不支持通配符,复制目录,如果asmcmd
有脚本机制,我找不到任何提示。
我的服务器上有一个 Microsoft SQL Server 实例,其中包含 100 多个数据库和用户。有时,SQL Server 进程使用 100% 的服务器 CPU,我想知道是哪个查询/用户/数据库导致了这种情况并使用了如此多的资源。
对于 MySQL,我使用mysqladmin pr
命令查看当前连接了哪些用户。此外,慢查询日志显示需要超过 X 秒才能完成的查询。
我想知道 SQL Server 是否有类似的命令。
我正在使用 MySQL Workbench 来设计我的 MySQL 数据库并模拟实体的外观以及它们如何相互关联。现在,有时我使用 Doctrine ORM。使用 Doctrine ORM 时,我创建了作为域对象并且可以持久化到数据库的类/对象。通过 DocBlock Annotations,我可以表达如何将实体相互关联。
使用 MySQL Workbench,我可以查看一个 EER 图表,该图表向我展示了对象是如何关联的,并且通过查看符号,我可以清楚地看到关系。这种方法的问题是我需要使用 Doctrine CLI 生成数据库模式。然后在 MySQL Workbench 中,我必须从现有数据库创建一个 EER 模型。问题是我经常更改数据库模式,要查看 MySQL Workbench 中的关系,我每次都必须创建一个 EER 模型。这很耗时。
有没有办法只从现有数据库加载 EER 图,然后,当数据库架构更改时,只需刷新并查看更改,这样我就不必为每个小的更改生成 EER 图?
我过去使用过 Navicat,你可以这样做。当数据库发生变化时,只需按F5,ER图中的关系就会立即发生变化。Navicat 的唯一问题是表之间没有显示它们关系的符号。只有线条。
是否可以在 MySQL Workbench 中使用该功能?如果没有,是否有其他工具可以让我看到 ER 图,并在我更改数据库架构后立即刷新图?
如何取消索引创建?
还在运行,会运行很久,因为不小心创建了聚集索引;和非聚集索引正在一个非常大的表上重新创建。
对于带有前缀 sp_ 的 T-SQL 存储过程,SQL Server 将在 master 数据库中搜索并使用当前过程之前的过程。对于我使用 Visual Studios 内置部署使用 SQL Server 2010 创建的 SQLCLR 存储过程,情况似乎并非如此。数据库服务器是 SQL Server 2008 R2 (SP1)。
我执行这个脚本:
SELECT name
from master.sys.procedures
WHERE type_desc='CLR_STORED_PROCEDURE' and schema_id = 1
USE tempdb
PRINT 'USING tempDb'
EXEC sp_RAISERROR_CaughtDemo;
GO
USE master
PRINT 'USING master'
EXEC sp_RAISERROR_CaughtDemo
GO
--SELECT * from sys.assembly_modules
Run Code Online (Sandbox Code Playgroud)
并且存储过程只会使用来自 master 数据库的非限定名称执行:
name
----------------------------------
sp_RAISERROR_CaughtDemo
sp_RAISERROR_UncaughtDemo
(2 row(s) affected)
USING tempDb
Msg 2812, Level 16, State 62, Line 5
Could not find stored procedure 'sp_RAISERROR_CaughtDemo'. …
Run Code Online (Sandbox Code Playgroud) 我使用 SQL Server 已经有一段时间了,我知道任务管理器报告的 SQL 内存不准确。
但是,我最近一直在对其他人设置的 SQL Server 进行一些测试。
我期待看到sqlservr.exe
在大约 40mb 内存下运行。但是,任务管理器显示正在使用超过 4Gb 的内存。
SQL Server 中是否存在导致任务管理器不准确地报告此问题的设置?或者我的 SQL Server 的后台有什么问题导致它膨胀?
我想知道内存使用和使用更多内存的编程问题之间varchar(100)
的区别。varchar(255)
安装 FreeTDS 后,我能够使用 tsql 连接到我们的 SQL Server,但还不能通过 bsqldb。使用 bsqldb,即使 db 被指定为 testDB
.
serverName
设置在 /etc/freetds.conf
[serverName]
host = database.windows.net
port = 1433
tds version = 8.0
Run Code Online (Sandbox Code Playgroud)
使用 tsql:
[gpadmin@mdw ~]$ /usr/bin/tsql -S serverName -U user -D testDB -P password
Run Code Online (Sandbox Code Playgroud)
工作正常
使用 bsqldb,它会尝试连接到 master,即使 db 被指定为 testDB。
[gpadmin@mdw ~]$ /usr/bin/bsqldb -U user -P password -S serverName \
-D testDB -i tag.sql -o tag.csv
Msg 4060, Level 11, State 1
Server 'fj5j2jtt5k', Line 1
Cannot open database "master" requested by the …
Run Code Online (Sandbox Code Playgroud) 我正在运行 Postgres 8.4,我想更改用户的身份验证方法。我的理解是,我必须在 中执行此操作pg_hba.conf
,然后使用pg_ctl reload
(或在本例中为service postgresql reload
)重新加载配置文件以使设置生效。
但是,我还使用多个进程从平面文件中导入了大量数据。
这样做安全吗?
如果在具有“读取已提交快照”隔离级别的表上运行更新并且提交未决
例如:
update table1 set col1 = col1 + 1 where PKcol < 3
update table1 set col1 = col1 + 1 where PKcol = 3
update table1 set col1 = col1 + 1 where NonPKcol < 3
update table1 set col1 = col1 + 1 where NonPKcol = 3
update table1 set col1 = col1 + 1 where PKcol < 3 and NonPKcol = 5
在上述情况下,PKcol 是表中的主键,而 NonPKcol 是非主键。
是否只为满足“where”条件的行锁定更新?它是基于值、索引还是主列?
sql-server ×5
mysql ×3
freetds ×1
locking ×1
oracle ×1
phpmyadmin ×1
postgresql ×1
sql-clr ×1
transaction ×1