2014-07-13 31 views
0

我正在一個超過200表的大項目工作,我正在使用MySQL(Percona),Java & Crystal Report JRC。 我有一些報告,這麼大的&有很多表之間的聯接。 Java客戶端內部我通常會在框架中顯示數據,在某些情況下,我需要打印這些數據,因此我將唯一ID發送到Crystal Report以查詢相同的數據並將其打印出來。MySQL插入需要的數據,然後將其發送到水晶報告

有些報告變得非常慢,於是我想到一個想法就是創建一張僅用於打印的表格。 例如: 如果我想打印它,我在我的框架上查看收據憑證,因此我在印刷桌上插入所有需要的數據,然後將唯一的ID發送到水晶報表並打印出來。

此打印表將每48小時釋放一次,因此數據將保持較小,使報表打印速度更快。

注意:原始收據表將包含數百萬條記錄,並且應該保留爲現場,因爲這將是一項要求。

但打印表格僅用於打印。

所以,請幫助我決定這是否是我可以用數百萬條記錄改善水晶報表性能的最佳方法。

回答

0

如果您需要打印的數據已在您的java應用程序中查詢,請讓它創建一個只包含我提問的數據的臨時表,然後在Crystal Reports中查詢該臨時表。例如,

CREATE TEMPORARY TABLE IF NOT EXISTS print_data AS (SELECT * FROM table)

否則,我會建議在問這個問題在https://dba.stackexchange.com/這比水晶報表更多關於數據庫設計&性能,如果你正在傳遞一個唯一的ID通過時遇到的CR放緩(儘管是複雜的)加入結構,那麼要麼有嚴重的性能調整機會,要麼已經超出了硬件& /或MySQL作爲滿足您需求的適當解決方案。