数据库管理员

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

3
级联主键更新为所有引用的外键
是否可以通过在引用该引用的所有外键之间级联更新来更新主键列值? #编辑1: 当我运行followinq查询 select * from sys.foreign_keys where referenced_object_id=OBJECT_ID('myTable') ,我看到update_referential_action设置为0。因此,在更新主键列之后不执行任何操作。如何更新外键以使其成为CASCADE UPDATE? #编辑2: 为了脚本化脚本中所有外键的创建或删除,请运行以下脚本(从此处获取) DECLARE @schema_name sysname; DECLARE @table_name sysname; DECLARE @constraint_name sysname; DECLARE @constraint_object_id int; DECLARE @referenced_object_name sysname; DECLARE @is_disabled bit; DECLARE @is_not_for_replication bit; DECLARE @is_not_trusted bit; DECLARE @delete_referential_action tinyint; DECLARE @update_referential_action tinyint; DECLARE @tsql nvarchar(4000); DECLARE @tsql2 nvarchar(4000); DECLARE …

1
我可以出于自己的培训目的使用Oracle标准版或企业版吗?
问题是关于Oracle许可条款。 我想了解有关Oracle数据库管理的更多信息。不幸的是,我使用的是LInux的32位版本,因此无法安装Oracle 11 XE(尽管我找不到32位版本)。 可以,如果我在个人笔记本电脑上下载并安装了Oracle Standard或Entrprise,并且无需支付额外费用和隐藏许可证费用就可以使用它,那有可能吗?我不会将其用于任何商业,甚至是开源项目-我只会使用此安装来提高我的DBA技能。

2
没有PARTITION BY的ROW_NUMBER()仍会生成细分迭代器
我正在写我即将发表的有关排名和聚合窗口函数的博客文章,特别是Segment和Sequence Project迭代器。据我了解,Segment会识别流中构成组末尾的行,因此请执行以下查询: SELECT ROW_NUMBER() OVER (PARTITION BY someGroup ORDER BY someOrder) 将使用Segment来区分某行何时属于上一行以外的其他组。然后,Sequence Project迭代器根据Segment迭代器输出的输出进行实际的行号计算。 但是,使用该逻辑的以下查询不必包含细分,因为没有分区表达式。 SELECT ROW_NUMBER() OVER (ORDER BY someGroup, someOrder) 但是,当我尝试此假设时,这两个查询都使用Segment运算符。唯一的区别是第二个查询不需要GroupBy在细分上输入。难道不是一开始就不需要细分吗? 例 CREATE TABLE dbo.someTable ( someGroup int NOT NULL, someOrder int NOT NULL, someValue numeric(8, 2) NOT NULL, PRIMARY KEY CLUSTERED (someGroup, someOrder) ); --- Query 1: SELECT …

5
SQL Server 2012无法使用计算机帐户登录
我们正在将IIS / SQL Server网站从2008年迁移到2012年,但身份验证存在问题。我们使用Windows身份验证将身份验证为DOMAIN\COMPUTER$,但这不起作用,并显示一条错误消息: 用户“ DOMAIN \ COMPUTER $”的登录失败。原因:找不到与提供的名称匹配的登录名。[客户:<本地计算机>] 我已经验证了该帐户的存在,甚至删除并重新创建了该帐户 create login "DOMAIN\COMPUTER$" from windows 如果再次执行此操作,则会收到响应: 消息15025,级别16,状态2,第1行 服务器主体“ DOMAIN \ COMPUTER $”已存在。 (DOMAIN\COMPUTER用真实域名和计算机名代替) 因此,似乎该站点正在查询SQL Server,但是SQL Server并不是很努力地查看其登录名。 我错过了什么?

1
无法在BIDS中使用模糊查找
我的一个同事在BIDS上遇到了问题。他正在执行简单的模糊查找,并且仅针对两行进行查找(出于测试目的)。奇怪的是,当他尝试执行命令行提示符时,提示消失,然后消失,然后程序包挂起。 所以我让他把包裹寄给我,决定自己运行它,发现确实发生了同样的事情? 从本质上说,它将永远坐着。没有错误消息或任何东西。它给我的最后一条信息是这个。 [SSIS.Pipeline] Information: Execute phase is beginning. 现在,最好将它放在Superuser之类的东西上,因为我对问题所在有预感。我们的计算机被锁定到令人沮丧的程度。安装不当和软件无法正常运行时,我遇到了几个问题。 如果您对正在发生的事情或如何解决有任何想法,请告诉我。 更新:尝试安装此补丁无济于事。不能在32位或64位或Admin下工作。 也跟随输出,最后是这个。 SSIS package "Package1 (1) (1).dtsx" finished: Canceled.
11 ssis 

1
忙碌的桌子没有被打扫
我们在Windows上使用Postgres 9.2来存储低频时间序列数据:我们每周7天,每24小时每秒每秒插入约2000行,而没有停机。DELETE每隔10分钟左右在表上运行一次,以将表的长度保持固定的天数。最终是相当稳定的9亿行。(对于那些有兴趣,SELECT,INSERT,DELETE都是高性能)。 因此DELETE,在删除行时不会释放磁盘空间。为此,我们需要VACUUM运行。 我查询,pg_stat_user_tables并且VACUUM似乎从未运行过。 我从各种文档(http://www.postgresql.org/docs/9.2/static/routine-vacuuming.html)了解到: 我们似乎启用了自动真空,并且它正在其他表上运行。 auto-vacuum不会运行FULL,并且不应在表上要求排他锁。 有谁想到为什么自动真空不运行?这纯粹是因为桌子一直在忙吗? 它是值得的运行VACUUM后,每DELETE在这种情况下(其中每10分钟一班)? 编辑: 通过下面的SO链接使用SQL查询: -[ RECORD 2 ]---+--------------------------- schemaname | stats relname | statistic_values_by_sec last_vacuum | last_autovacuum | n_tup | 932,315,264 dead_tup | 940,727,818 av_threshold | 186,463,103 expect_av | * 和原始输出: -[ RECORD 3 ]-----+--------------------------- relid | 501908 schemaname | stats relname | …

3
将有关已删除记录的信息传递到“删除”触发器上
在设置审计跟踪时,我没有问题可以跟踪谁在更新或在表中插入记录,但是,跟踪谁删除记录似乎更成问题。 我可以通过在“插入/更新”字段中包含“ UpdatedBy”字段来跟踪插入/更新。这使INSERT / UPDATE触发器可以通过来访问字段“ UpdatedBy” inserted.UpdatedBy。但是,使用Delete触发器不会插入/更新数据。有没有一种方法可以将信息传递到Delete触发器上,以便它可以知道谁删除了记录? 这是一个插入/更新触发器 ALTER TRIGGER [dbo].[trg_MyTable_InsertUpdate] ON [dbo].[MyTable] FOR INSERT, UPDATE AS INSERT INTO AuditTable (IdOfRecordedAffected, UserWhoMadeChanges) VALUES (inserted.ID, inserted.LastUpdatedBy) FROM inserted 使用SQL Server 2012

2
我应该添加传递式外键吗?
一个简单的例子:有一张客户表。 create table Customers ( id integer, constraint CustomersPK primary key (id) ) 数据库中的所有其他数据都应链接到Customer,因此例如Orders: create table Orders ( id integer, customer integer, constraint OrdersPK primary key (customer, id), constraint OrdersFKCustomers foreign key (customer) references Customers (id) ) 假设现在有一个表链接到Orders: create table Items ( id integer, customer integer, order integer, constraint ItemsPK …

2
无法配置或启动MySQL
在全新的Kubuntu 14.04安装中,我运行了sudo aptitude install mysql-server-core-5.6。由于某些KDE软件包对的依赖关系,无法完成安装mysql-server-core-5.5,而这些软件包已被替换。现在,当我运行时,sudo aptitude install mysql-server-5.5在指定密码后出现此错误: Configuring mysql-server-5.5 Unable to set password for the MySQL "root" user An error occurred while setting the password for the MySQL administrative user. This may have happened because the account already has a password, or because of a communication problem with the …

1
具有Advanced Services的SQL Server 2014 Express是否实际上支持全文搜索?
我已经安装了具有高级服务的SQL Server 2014 Express版。我希望尝试全文搜索功能。我在这里阅读到,2014 Express Edition支持全文本搜索。但是,在安装并尝试创建全文索引后,出现错误,指出此版本的sql server不支持全文索引。 实际是否支持全文索引?我是否有可能安装了错误的版本(不是高级服务)?为了确定,我已经卸载并重新安装了两次,但是两次都相同。我很肯定我正在使用高级服务安装程序进行安装。 我使用的是Windows 7(64位)。


1
Sch-M WAIT阻止SQL Server 2014中的Sch-S,但不阻止SQL Server 2008 R2?
最近,我们将生产实例从SQL 2008 R2迁移到了全新的SQL 2014服务器。我们通过使用Service Broker发现了一个有趣的场景。考虑Broker Enabled = true带有MyService和的数据库MyQueue。在此队列上禁用了毒药消息处理。队列中至少有2条活动会话与消息。 在一个进程(SPID 100)中执行: BEGIN TRANSACTION; DECLARE @conversation_group_id UNIQUEIDENTIFIER; RECEIVE TOP (1) @conversation_group_id = conversation_handle FROM MyQueue; 请注意,我们保持交易未结。想象这是一个.NET程序,它在某些外部资源上等待了很长时间。通过sys.dm_tran_locks我们看到,此SPID已被授予队列上的IX锁。 | type | resource_id | mode | status | spid | | OBJECT | 277576027 | IX | GRANT | 100 | 在一个单独的进程(SPID 101)中执行五次: BEGIN TRANSACTION; …

1
“限制1000,25”与“限制25偏移1000”
最近,我发现MySQL具有一项offset功能。我一直在尝试寻找有关偏移量结果的文档,或者寻找偏移量和极限变量之间的差异的文档,但是我似乎找不到我要找的东西。 可以说我在一个表中有10.000行,而我要从1.000行中得到25个结果。就目前为止,我可以同时获得相同的结果: SELECT id,name,description FROM tablename LIMIT 1000,25 SELECT id,name,description FROM tablename LIMIT 25 OFFSET 1000 我想知道的是两者之间的区别。 这实际上是一样的吗?还是我的理解是错误的? 在大桌子上慢一点还是快一点 当我这样做时,偏移量的结果是否发生变化WHERE column=1(例如,列具有> 100个不同的值) 偏移量的结果在执行时是否发生变化ORDER BY column ASC(假设它具有随机值) 如果这是一个“愚蠢”的问题,并且有人知道启发该主题的任何文档,请在答复中添加它们。 我觉得偏移量跳过了数据库中找到的前X行,而无视排序和位置。
11 mysql  limits 

1
MySQL:my.cnf中的绑定地址0.0.0.0不起作用?
我是mysql新手。我想使用我想要的任何IP连接到mysql服务器。我读到我要做的就是将mybind.address = 0.0.0.0添加到my.cnf文件中。那就是我所做的。我重新启动了mysql服务器,然后从命令行对其进行了测试。 mysql -uroot -p'*password*' -h 127.0.0.1 --> Works mysql -uroot -p'*password*' -h 192.168.2.4 (local ip address) ---> ERROR 1045 (28000): Access denied for user 'root'@'mguru.lnx.gr' (using password: YES) 您可以在my.cnf文件中的mysqld部分的下面看到 [mysqld] user = mysql port=3306 socket = /opt/lampp/var/mysql/mysql.sock skip-external-locking key_buffer = 16M max_allowed_packet = 1M table_open_cache = 64 sort_buffer_size …
11 mysql  my.cnf 

1
数据校验和如何与流复制交互?
数据校验和是9.3中引入的新功能,并且: 有一个新的GUC参数“ ignore_checksum_failure”,即使检测到损坏,该参数也将强制PostgreSQL继续处理事务 如果复制主服务器上的校验和失败,该损坏的数据将复制到从服务器还是复制暂停。是否取决于设置ignore_checksum_failure? 该自述文件具有一些有用的相关信息,但不能直接回答问题。

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.