我是数据库管理的新手。我试图找出死锁异常的原因,但我无法理解日志。
日志显示“事务 1 已回滚”。为什么会这样?赌注表与帐户表有外键关系,但它(运行插入的反式)无法获得 S 锁并因此因死锁而死亡是否“正常”?我的意思是,考虑到它只是验证参照完整性的读取,这似乎很糟糕。
第二笔交易也在写入赌注表,但没有更新。那么是用于创建 auto-inc 键的“机制”还是索引机制或两者都导致死锁?为什么它们不会以连续的方式发生?或者可能是他们,但某种等待时间太短了。
任何帮助,指针,进一步阅读如何使用下面的日志来解决死锁问题表示赞赏。
111031 17:39:26
*** (1) TRANSACTION:
TRANSACTION 0 984899905, ACTIVE 180 sec, process no 10882, OS thread id 1104619856 inserting
mysql tables in use 1, locked 1
LOCK WAIT 13 lock struct(s), heap size 3024, undo log entries 86
MySQL thread id 122, query id 28932942 localhost 127.0.0.1 bt update
INSERT INTO wager (amount_won, confirmation, created_by_partner, creation_date, description, fantasy_league,
first_game_start, image_thumb, image_wide, kind, last_game_start, last_update_version, locked, name,
num_future, num_past, num_present, partner, …Run Code Online (Sandbox Code Playgroud) 我在 PostgreSQL 中有一个长期运行的 PL/pgSQL 存储过程。如何确定其中当前正在执行的语句?
我们的生产服务器正在运行 SQL Server 2008(非 r2)。
我正在调查似乎与网络或连接相关的问题,即我们的 Web 服务器丢失或断开与数据库服务器的连接。
如果有一种方法或计数器可以用来跟踪与 SQL Server 的DROPPED连接,这将对我有很大帮助。具体来说,我们想知道 ODBC/ADO 连接是否被 CLIENT 强行关闭。
可以想象,我们还可以跟踪客户端取消查询的时间,这可能会为我们提供相同的信息。
从我自己的研究来看,我没有看到用 perfmon 计数器跟踪这个的方法,但我对它们不太熟悉。
我想知道如何计算文件组中每个文件消耗的数据分布,回到存储它的索引(HEAP、CLUSTERED、NONCLUSTERED)。我的目的是定义哪些 I/O 去磁盘上的哪个位置。
我data_space_id从 开始sys.indexes,显示已使用、已分配的页面;和data_space_id大小从sys.filegroups. 所以我到达了用于将数据存储到文件组内的文件的加权(按可用空间比率?)算法生效的地方。我可以加入sys.database_files使用data_space_id.
从sys.dm_allocation_units (通过object_Id和连接到索引index_Id)我得到partition_ID;加入sys.dm_partitions建议行数,使用和分配的页面,允许计算也显示每个分区的可用内容。无法分区到文件...?
我有一个查询,我根据文件组中每个文件的已使用页面的比率将 DATA 分配给 FILE,将该比率应用于存储在文件所属的文件组上的索引数据。
是否有更好的方法将表/索引数据向下钻取到文件级分配?(测量而不是计算?)
对于 indid = 0 或 indid = 1,dpages 是使用的数据页数。
对于 indid > 1,dpages 是使用的索引页数。
对于 indid = 0 或 indid = 1,used 是用于所有索引和表数据的总页数。
对于 indid > 1,used 是用于索引的页数。
对于 indid = 0 或 indid = 1,reserved 是为所有索引和表数据分配的页数。
对于 indid > 1,reserved 是为索引分配的页数。
查询语句:
Select T.Name …Run Code Online (Sandbox Code Playgroud) performance monitoring sql-server dmv disk-space performance-tuning
我知道AUTO_SHRINK在 SQL Server 数据库上配置的缺点。最近,在一个新环境中,我发现了几台启用了 Auto Shrink 选项的生产服务器。
现在,在更改此配置之前,我想知道:由于 auto_shrink 事件从 25% 的未使用空间开始,我想知道这是否和/或何时在 SQL Server 上实际发生。我试图找到相关的 SQL-Event-Logfile 条目。我开始手动缩小测试数据库,但没有显示事件日志条目。
有谁知道如何找出最近几天或几周内 SQL Server 发生收缩的时间?
运行社区 8.0.14 的服务器,几天前我们达到了打开文件的数量,所以我增加了限制,但过了一会儿,服务器在错误日志中崩溃了:
InnoDB: We intentionally generate a memory trap.
InnoDB: Submit a detailed bug report to http://bugs.mysql.com.
InnoDB: If you get repeated assertion failures or crashes, even
InnoDB: immediately after the mysqld startup, there may be
InnoDB: corruption in the InnoDB tablespace. Please refer to
InnoDB: http://dev.mysql.com/doc/refman/8.0/en/forcing-innodb-recovery.html
InnoDB: about forcing recovery.
03:07:21 UTC - mysqld got signal 6 ;
This could be because you hit a bug. It is also possible that this binary
or one of the libraries …Run Code Online (Sandbox Code Playgroud) 我有一台运行 .NET Web 应用程序和 SQL Server 数据库(2008 标准)的服务器。我计划将数据库移动到单独的服务器上,但为了提供网络硬件,我想对 Web 应用程序和数据库之间的数据吞吐量进行基准测试。1433端口可以内部监控吗?如果是这样,是否有任何 Windows 2008 R2 原生工具可以做到这一点,或者我是否需要一些像 WireShark 这样的 3rd 方应用程序?我的连接字符串正在使用 引用数据库server=localhost,是否仍然可以访问 1433 以查看此端口上使用的带宽?
本质上,我试图确定在 Web 服务器和数据库服务器之间是否需要 Gbit 或 100 Mbit 连接。对此的任何想法将不胜感激。
7 月 8 日更新
我对上述内容进行了讨论,因为我意识到这在很大程度上无关紧要。出于某种原因,我认为 100 Mbit 和 1 Gbit 交换机之间的成本差异很大。只有cheapo 家庭用户交换机是100 Mbit。正如其他人指出的那样,Wireshark 不会在同一台机器上的 IIS 和 SQL 服务器之间获取活动。我现在正在安装一个 1Gbit 托管交换机,我将使用 Wireshark 或交换机上的内置监控来查看稍后会发生什么。我认为它不会接近硬件施加的物理传输限制。
我负责监控、故障排除、调整和优化我公司中在 VMWare 虚拟机中运行的几十个生产 SQL Server 2008 R2/2012。
我请求对 VMWare 基础架构进行只读访问,但没有取得多大成功。我觉得我应该为非技术人员(公司管理层)提供无可辩驳和明确的证据和插图,为什么我需要这样的访问权限。
这些是什么?
更新:
最近,我下载并“试用”了Confio Ignite 试用版,用于监控在 (VMWare) 虚拟机中运行的“我的”SQL Server。
为什么需要这样的访问?
对于无法从 Window 的 PerfMon VM 计数器获取的 DBA,哪些信息是重要的?

相关问题:
我正在寻找一种通过执行 SQL 查询的 PHP 脚本来监视 Oracle 数据库状态(运行状况)的方法。有包含实际连接数、会话数、工作负载等的系统变量......
我如何访问这些值:通过常规SELECT语句或内置存储过程,或者它需要是自定义构建存储过程...
在获得这些值后,我如何检测它是否是正常的、繁重的、极端的工作负载。标准是什么?
有很多关于可用于减轻不良参数嗅探的某些方法的极好信息,但关于如何识别不良参数嗅探问题的信息并不多。
假设您没有使用 SQL Server 2016,因此无法利用查询存储,并且您没有用户抱怨有问题的存储过程间歇性地执行不佳,那么可以使用哪些方法来主动识别错误的参数嗅探问题?
利用扩展事件、RML 实用程序和简单地查询/轮询 DMV 似乎都是可行的方法,有没有人有使用这些方法中的任何一个的方法或知道任何描述如何执行此操作的好资源?
monitoring ×10
sql-server ×4
mysql ×2
deadlock ×1
disk-space ×1
dmv ×1
innodb ×1
insert ×1
maintenance ×1
mysql-8.0 ×1
network ×1
oracle ×1
performance ×1
postgresql ×1
shrink ×1