sql >> データベース >  >> RDS >> Oracle

SpringBootsapplication.propertiesを使用したJDBCフェッチサイズの最適化

    BeanPostProcessor ApplicationContext内のすべてのBeanを処理します そうすれば、必要に応じて、構成を追加したり、完全に置き換えたりすることができます。

    BeanPostProcessorを作成できます これにより、構成済みのDataSourceにプロパティが追加されます。 。以下のサンプルは、commons-dbcpの使用を想定しています。 別のDataSourceを使用する場合は、1または2 それに応じて変更します。

    public class DataSourceConfiguringBeanPostProcessor implements BeanPostProcessor {
        private final Map<String,String> properties = new HashMap<>;
    
        public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
            if (bean instance BasicDataSource ) { 
                for (Map.Entry<String, String> prop : properties.entrySet()) {
                    ((BasicDataSource) bean).addConnectionProperty(prop.getKey(), prop.getValue());
                }
            }
            return bean;
        }
    
        public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
            return bean;
        }
    
        public void setProperties(Map<String, String> properties) {
            this.properties.putAll(properties);
        }
    }
    

    これを構成に追加すると、プロパティがDataSourceに追加されます。 豆。

    @Bean
    public BeanPostProcessor dataSourcePostProcessor() {
        DataSourceConfiguringBeanPostProcessor processor = new DataSourceConfiguringBeanPostProcessor();
        Map<String, String> properties = new HashMap<>();
        properties.put("defaultRowPrefetch", "15");
        properties.put("defaultBatchValue", "25");
        processor.setProperties(properties);
        return processor;
    }
    

    これで、データソースを構成するためのトリックが実行されます。




    1. FirebirdからMySQLへのクエリの移行-[内部結合]サブクエリを選択します

    2. データベースサイズが2ギガバイトを超えると、SQLiteのパフォーマンスが低下しますか?

    3. MySQL C#非同期メソッドが機能しませんか?

    4. すでに存在するRails自動割り当てID