code: def _get_experiment_sqa_immutable_opt_config_and_search_space(
      experiment_name: str,
      exp_sqa_class: Type[SQAExperiment],
      trial_sqa_class: Type[SQATrial],
      load_trials_in_batches_of_size: Optional[int] = None,
      skip_runners_and_metrics: bool = False,
  ) -> SQAExperiment:
      """For experiments where the search space and opt config are
      immutable, we don't store copies of search space and opt config
      on each generator run. Therefore, there's no need to try to
      load these copies from the DB -- these queries will always return
      an empty list, and are therefore unnecessary and wasteful.
      """
      return _get_experiment_sqa(
          experiment_name=experiment_name,
          exp_sqa_class=exp_sqa_class,
          trial_sqa_class=trial_sqa_class,
          trials_query_options=get_query_options_to_defer_immutable_duplicates(),
          load_trials_in_batches_of_size=load_trials_in_batches_of_size,
          skip_runners_and_metrics=skip_runners_and_metrics,
      )
  
imports: from math import ceil
  from typing import Any, cast, Dict, List, Optional, Type
  from ax.core.experiment import Experiment
  from ax.core.generator_run import GeneratorRun
  from ax.core.metric import Metric
  from ax.core.trial import Trial
  from ax.exceptions.core import ExperimentNotFoundError, ObjectNotFoundError
  from ax.modelbridge.generation_strategy import GenerationStrategy
  from ax.storage.sqa_store.db import session_scope
  from ax.storage.sqa_store.decoder import Decoder
  from ax.storage.sqa_store.reduced_state import get_query_options_to_defer_immutable_duplicates, get_query_options_to_defer_large_model_cols
  from ax.storage.sqa_store.sqa_classes import SQAExperiment, SQAGenerationStrategy, SQAGeneratorRun, SQATrial
  from ax.storage.sqa_store.sqa_config import SQAConfig
  from ax.utils.common.constants import Keys
  from ax.utils.common.typeutils import checked_cast, not_none
  from sqlalchemy.orm import defaultload, lazyload, noload
  from sqlalchemy.orm.exc import DetachedInstanceError
label_desc: Use image node_id 6 for calling a global function with example usage: _get_experiment_sqa_immutable_opt_config_and_search_space(experiment_name, exp_sqa_class, trial_sqa_class, load_trials_in_batches_of_size, skip_runners_and_metrics) and returns: _get_experiment_sqa