数据库管理员

希望提高数据库技能并向社区中的其他人学习的数据库专业人员的问答

1
执行计划显示了昂贵的CONVERT_IMPLICIT操作。我可以通过索引解决此问题,还是需要更改表?
我有一个非常重要,非常缓慢的观点,它的where子句中包含一些非常丑陋的条件。我也知道联接是粗联接和慢联接,varchar(13)而不是整数标识字段,但想改进下面使用此视图的简单查询: CREATE VIEW [dbo].[vwReallySlowView] AS AS SELECT I.booking_no_v32 AS bkno, I.trans_type_v41 AS trantype, B.Assigned_to_v61 AS Assignbk, B.order_date AS dateo, B.HourBooked AS HBooked, B.MinBooked AS MBooked, B.SecBooked AS SBooked, I.prep_on AS Pon, I.From_locn AS Flocn, I.Trans_to_locn AS TTlocn, (CASE I.prep_on WHEN 'Y' THEN I.PDate ELSE I.FirstDate END) AS PrDate, I.PTimeH AS …
24 sql-server  view 

7
Oracle-以任何方式查看对特定表的未提交的更改?
我目前正在通过批处理过程进行调试,该批处理过程执行许多DML语句,但不会立即进行提交。能够在未提交事务的情况下查看另一个会话中的“待处理”更改将是很好的。这可能吗? 例: Insert into table myTable (col1, col2) values ("col1", "col2"); --Somehow view the pending transaction maybe by system view?.... ...other DML statements.... commit;

5
如何在MySQL中创建条件索引?
如何在MySQL中创建索引以过滤表的特定范围或子集?AFAIK无法直接创建,但我认为可以模拟此功能。 示例:我NAME只想为带有行的列创建索引STATUS = 'ACTIVE' 此功能在SQL Server中称为筛选索引,在Postgres中称为部分索引。

1
语言和DATEFORMAT安全哪些日期/时间文字格式?
很容易证明,由于SET LANGUAGE,SET DATEFORMAT或登录名的默认语言,除了以下两种格式外,许多其他日期/时间格式都容易引起误解: yyyyMMdd -- unseparated, date only yyyy-MM-ddThh:mm:ss.fff -- date dash separated, date/time separated by T 即使没有T的这种格式,也可能看起来像是有效的ISO 8601格式,但是它在几种语言中均失败: DECLARE @d varchar(32) = '2017-03-13 23:22:21.020'; SET LANGUAGE Deutsch; SELECT CONVERT(datetime, @d); SET LANGUAGE Français; SELECT CONVERT(datetime, @d); 结果: Die Spracheneinstellung wurde auf Deutschgeändert。 消息242,第16级,状态3国家 地图上的Eines varchar-Datentyps,日期从WereaußerhalbdesgültigenBereichs开始。 法语的最佳语言翻译。 消息242,级别16,状态3 转换日期类型为dénéesvalchar hors …

1
在生产环境中收缩Tempdb的最佳实践
此问题是从Stack Overflow 迁移而来的,因为可以在Database Administrators Stack Exchange上回答。 迁移 5年前。 在SQL Server 2008中收缩Temporary db时,最佳做法是什么? 使用以下内容有风险吗? use tempdb GO DBCC FREEPROCCACHE -- clean cache DBCC DROPCLEANBUFFERS -- clean buffers DBCC FREESYSTEMCACHE ('ALL') -- clean system cache DBCC FREESESSIONCACHE -- clean session cache DBCC SHRINKDATABASE(tempdb, 10); -- shrink tempdb dbcc shrinkfile ('tempdev') -- shrink …

2
pgAdmin询问的维护数据库是什么?
用于添加新数据库连接的pgAdmin对话框要求输入“维护数据库”。 为了能够连接,我将其设置为要连接的数据库(而且,我也有权连接)。 那么,为什么将其命名为“维护数据库”而不是“数据库”或“数据库”?


5
MySQL控制台:Ctrl + C让我发疯
MySQL控制台中有些东西让我发疯。当我按ctrl+ c取消当前键入的命令时,终端退出。 在每一个终端我知道(*nix码头,Python,PostgreSQL),ctrl+ c取消当前命令和ctrl+ d离开终端。 此问题已在2003年报告,此后多次发生。 有没有办法: 更改此行为,或者 说服MySQL开发团队这真的很烦人吗?



4
您如何识别InnoDB表损坏?
我有一些表已分区,并且在复制的从属服务器上有多个索引。将快照(已验证安全)复制到新的从属并将mysqld从5.1.42升级到5.5.15并重新启动复制后,我收到InnoDB崩溃的错误消息“ Invalid pointer ...”。 这些错误已在具有不同硬件和O / S的2台服务器上发生。运行后: ALTER TABLE .... COALESCE PARTION n; 该表的问题消失了。 我的问题是,范围更大,那就是“如何识别InnoDB表损坏?” 或改写为“您如何评估InnoDB表的运行状况?” 是“检查表”可用于识别问题预碰撞唯一的工具? 不确定是否重要,但是崩溃发生在运行:版本:'5.5.15-55-log'套接字:'/opt/mysql.sock'端口:3306 Percona Server(GPL),版本rel21.0,修订版158

2
'CONCAT'不是公认的内置函数名称
一位客户报告说他们正在SQL Server 2012上运行,我们在最终交付之前交付了一些测试查询以进行测试,但是: 'CONCAT'不是公认的内置函数名称。 我知道这CONCAT()是SQL Server 2012中引入的一个新的内置函数,它很好,但是我被要求回退我的更改以使此2008R2兼容,理由是“执行查询的用户可能无法具有执行Transact-SQL权限。” 因此,我只是想证明我的观点,即客户端最有可能在DEV中安装的SQL Server版本与在PROD中安装的SQL Server版本不同。 我找不到有关专门拒绝SELECT/EXECUTE内置标量值函数的权限的任何信息,但是是否可以,如果这样,用户仍然会收到相同的错误文本吗?

4
两次录入簿记数据库设计
我正在创建会计软件。我需要强制两次记账。我有一个经典的问题,即每笔交易要排两行。 让我们举个例子,看看在两种情况下如何实现它。 考虑帐户Cash和帐户Rent。当我支付月租金时,我将$ 100从我的Cash帐户转入我的Rent帐户。 每笔交易一行 在单行系统中,此类交易将存储为: 交易 tx_id | posting_date 1 | 23/05/2015 transaction_records id | tx_id | credit_account | debit_account | amount 1 | 1 | Cash | Rent | 100.00 每笔交易两行 在两行系统中,我必须镜像相同的事务记录以创建相反的记录,一旦我将两者都加起来,就会得到零余额。 交易 tx_id | posting_date 1 | 23/05/2015 transaction_records id | tx_id | type | account | …



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.