Самый быстрый способ загрузки нескольких запросов - PullRequest
0 голосов
/ 10 июня 2019

enter image description here Я разработал MIS-отчет в своем приложении свинга.Означает таблицу, в которой первый столбец содержит столбец даты, за которым следуют 7 столбцов статуса счета-фактуры, таких как ожидающий платеж, оплаченный, ожидающий парковку, публикация и т. Д.

Просто пытается отобразить отчет таблицы EXCEL PIVOT LIKE вСвинг, я успешно реализовал его.

, но проблема в том, что число строк увеличивается с каждым днем, и я разработал запрос типа

select count(invoice_No) 
from MyTable 
where ClaimStatus='columnHeader' 
AND date='row1stColumn'

, и он будет проходить по всем строками столбец, чтобы получить желаемое количество и отобразить его в jtable.

Но, как я уже сказал, число строк увеличивается день ото дня, и данные таблицы SQL Server также значительно увеличиваются.

Так что мойзапрос count получает много времени для заполнения этой таблицы

Есть ли способ ускорить выполнение вышеуказанного запроса?

Если кто-то захочет увидеть мой код, я предоставлю его.

Я реализовал свое приложение, но из-за огромных данных требуется время, чтобы показать отчет MIS

Пожалуйста, посмотрите на прилагаемую картинку, которая является выводом моего кода.

И код,

1) для разных дат в 1-м столбце

q="Select distinct(Inward_Date_Short) from Inward_Master";
PreparedStatement ps=con.prepareStatement(q);
                ResultSet rs=ps.executeQuery();
                while(rs.next())
                {
                    inwardDateList.add(rs.getString(1));
                }

2) статические столбцы JTable

headers.add("Pending For Digitization");
            headers.add("Pending For Claim Creation");
            headers.add("Resolution - Pending For Claim Creation");
            headers.add("Pending For Approval");
            headers.add("Pending For Parking");
            headers.add("Pending For Posting");
            headers.add("Objection");
            headers.add("Pending For Payment");
            headers.add("Paid");
            headers.add("Rejected");
            headers.add("Outward");

3) теперь этосамый важный код, который я хочу сделать быстрее

for(int i=0;i<inwardDateList.size();i++)
            {
            Vector varsha=new Vector();

             varsha.add(inwardDateList.get(i).toString());

                for(int c=1;c<headers.size();c++)
                {
                    try(Connection con=dbConnection.dbConnector();)
                    {

                        String q="";
                        q=headers.get(c).toString();
                        PreparedStatement ps=con.prepareStatement("Select COUNT_BIG(Inward_No) from Inward_Master where Inward_Date_Short='"+inwardDateList.get(i).toString()+"' AND Claim_Status='"+q+"'");
                        //PreparedStatement ps=con.prepareStatement("Select count(Inward_No) from(Select Inward_No from Inward_Master where Inward_Date_Short='"+inwardDateList.get(i).toString()+"' AND Claim_Status='"+q+"') X");

                        ResultSet rs=ps.executeQuery();
                        rs.next();                      
                        data.add(rs.getInt(1));

                    }
                    catch(Exception e)
                    {
                        e.printStackTrace();
                    }

                }
                rowdata.add(data);
            }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...