2016-03-15 24 views
-3

我必須執行兩個表的交換,它使我的系統在20分鐘內不可用(有很多數據)。改變導致SQL Azure數據庫不可用的表

我的示例代碼:

query = "DROP TABLE MY_TABLE; "; 
query += "EXEC sp_rename MY_TABLE_TEMP, MY_TABLE; "; 
query += "ALTER TABLE MY_TABLE ADD CONSTRAINT PK_MY_TABLE PRIMARY KEY CLUSTERED (ID) WITH(STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]"; 

執行的SQL Azure數據庫對上述語句,這引起了數據庫20分鐘不可用。在這方面的任何見解?

+0

我想知道你的問題是什麼 –

+0

你的問題實際上是什麼?你發表聲明而不是提問 – juvchan

+0

抱歉。如何不讓我的SQL不可用20分鐘? –

回答

0

Azure數據庫可以扼殺新的查詢,如果有DTU的壓力,所以我建議你檢查以下東西

1.See DTU狀態,如果任何DTU指標是90%以上一致,那麼你可能需要考慮升級到更高的層次,故障排除後,看看你是否可以減少DTU指標

SELECT 
    AVG(avg_cpu_percent) AS 'Average CPU Utilization In Percent', 
    MAX(avg_cpu_percent) AS 'Maximum CPU Utilization In Percent', 
    AVG(avg_data_io_percent) AS 'Average Data IO In Percent', 
    MAX(avg_data_io_percent) AS 'Maximum Data IO In Percent', 
    AVG(avg_log_write_percent) AS 'Average Log Write Utilization In Percent', 
    MAX(avg_log_write_percent) AS 'Maximum Log Write Utilization In Percent', 
    AVG(avg_memory_usage_percent) AS 'Average Memory Usage In Percent', 
    MAX(avg_memory_usage_percent) AS 'Maximum Memory Usage In Percent' 
FROM sys.dm_db_resource_stats; 

2.See有多大,你的表是,因爲你正在試圖改變PK,相同的值在所有非集羣進行更新索引。請看等待狀態..