У меня умеренно большая таблица на Sql Server, около 40 миллионов строк.В частности, в этой таблице есть столбец xml, который может быть большого размера.
У меня очень низкая производительность при извлечении данных из этой таблицы с использованием последней версии mssql-jdbc .Я ищу способы улучшить производительность как на стороне Java, так и на стороне базы данных.
На стороне Java это соответствующий код для извлечения данных:
String connectionUrl = "jdbc:sqlserver://10.10.10.28:1433;databaseName=MYDB;user=MYUSER;password=MYPWD;selectMethod=direct;sendStringParametersAsUnicode=false;responseBuffering=adaptive;";
String query = "SELECT * FROM MYTABLE WHERE DateTimeField > '2019-03-25 00:00:00.0' AND DateTimeField < '2019-03-25 13:00:00.0'";
try (Connection sourceConnection = DriverManager.getConnection(connectionUrl);
Statement stmt = sourceConnection.createStatement(SQLServerResultSet.TYPE_SS_SERVER_CURSOR_FORWARD_ONLY, SQLServerResultSet.CONCUR_READ_ONLY) ) {
stmt.setFetchSize(100);
resultSet = stmt.executeQuery(query);
while (resultSet.next()) {
// do something
}
}
Я установил размер выборкина 100 строк, потому что я заметил проблемы, если я установил слишком большой размер выборки, возможно, из-за столбца xml, который тяжело отправлять по сети.
У кого-нибудь есть предложения по улучшению производительности при извлечении данныхпо этому сценарию?