[英]Is there is any Performance issue while using ISNULL() in SQL Server?
[英]Performance Issue while using On delete cascading in sql server
我有一個只有10行的父表,
但是它們各自的子表將具有100K記錄,對於父表中的1個ID,我們在子表中具有10K記錄。
當我在父表上執行刪除命令時,它也會從子表中刪除記錄,但是刪除所有10K記錄大約需要5分鍾。
所以我的問題是,當對表有級聯作用時,從子表中刪除記錄的最佳實踐是什么。
10K條記錄只是某些ID的示例,我們有數百萬條記錄需要刪除。
假設SQL Server在刪除時可以使用索引,則在子表中的外鍵列上放置索引可能會加快刪除速度。 例如:
parent (id, col1, col2, ...)
child (id, parent_id, ...)
CREATE INDEX ON child (parent_id);
這樣的索引可以讓SQL Server在給定父記錄的情況下快速查找每個子記錄。
這個評論太長了。
刪除表中的數千行需要花費時間。 刪除必須:
這可能是相當昂貴的。
鑒於父ID的數量很少,我認為您可以通過按父ID划分子表來加快此速度。 父ID上的聚集索引也可能會有所幫助-但這可能會影響插入性能。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.